mirror of
https://github.com/parkervcp/eggs.git
synced 2026-06-13 09:43:38 +08:00
Compare commits
1189 Commits
update/mtaserver
...
STN
@@ -1,7 +1,7 @@
|
|||||||
name: 🐛 Bug Report
|
name: 🐛 Bug Report
|
||||||
description: Report an issue for an egg
|
description: Report an Egg issue
|
||||||
title: "[Bug]: "
|
title: "[Bug]: <Egg Name>"
|
||||||
labels: [Bug]
|
labels: ["bug", "not confirmed"]
|
||||||
body:
|
body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
@@ -79,7 +79,9 @@ body:
|
|||||||
description: |
|
description: |
|
||||||
Run the command below on the SSH terminal of your Wings machine and provide the link to logs.
|
Run the command below on the SSH terminal of your Wings machine and provide the link to logs.
|
||||||
|
|
||||||
`tail -n 100 $(ls -Alrt /var/log/pterodactyl/install/*.log | tail -1 | sed 's/ */ /g' | cut -s -d' ' -f9) | nc pteropaste.com 99`
|
```
|
||||||
|
tail -n 1000 $(ls -Alrt /var/log/pterodactyl/install/*.log | tail -1 | sed 's/ */ /g' | cut -s -d' ' -f9) | nc pteropaste.com 99
|
||||||
|
```
|
||||||
placeholder: |
|
placeholder: |
|
||||||
https://pteropaste.com/exampleLogs
|
https://pteropaste.com/exampleLogs
|
||||||
validations:
|
validations:
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
name: 🥚 Egg Request
|
name: 🥚 Egg Request
|
||||||
description: Suggest a server to build an egg for
|
description: Suggest a server to build an egg for
|
||||||
title: "[Egg Request]: "
|
title: "[Egg Request]: <Software/Game>"
|
||||||
labels: [Egg Request]
|
labels: ["egg request"]
|
||||||
body:
|
body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
value: |
|
value: |
|
||||||
Make sure there are no existing egg requests by searching the [repository issues](https://github.com/parkervcp/eggs/issues?q=is%3Aissue+is%3Aopen+label%3A%22Egg+Request%22). Please understand how Pterodactyl works when you are requesting an egg. (ie. docker-compose doesn't work for a pterodactyl server)
|
Make sure there are no existing egg requests by searching the [repository issues](https://github.com/parkervcp/eggs/labels/egg%20request). Please understand how Pterodactyl works when you are requesting an egg. (ie. docker-compose doesn't work for a pterodactyl server)
|
||||||
- type: dropdown
|
- type: dropdown
|
||||||
id: expand
|
id: expand
|
||||||
attributes:
|
attributes:
|
||||||
@@ -27,7 +27,7 @@ body:
|
|||||||
id: download-link
|
id: download-link
|
||||||
attributes:
|
attributes:
|
||||||
label: Links for the download
|
label: Links for the download
|
||||||
description: This needs to be an official link and not one that is hosted on some forum page or a personal Github page.
|
description: This needs to be an official link and not one that is hosted on some forum page or a personal Github page. Docker image is not a viable option.
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
validations:
|
validations:
|
||||||
@@ -36,7 +36,6 @@ body:
|
|||||||
id: instruction-link
|
id: instruction-link
|
||||||
attributes:
|
attributes:
|
||||||
label: Links for the install docs
|
label: Links for the install docs
|
||||||
description: Link to install instructions or documentation based on which the server can be created
|
description: Link to installation instructions or documentation covering required dependencies and configuration for the server creation. Docker image is not installation documentation!
|
||||||
placeholder: Install the server, start it, play
|
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
@@ -0,0 +1,88 @@
|
|||||||
|
name: 🐛 Install Bug Report
|
||||||
|
description: Report an Egg install issue
|
||||||
|
title: "[Install Bug]: <Egg Name>"
|
||||||
|
labels: ["install bug", "not confirmed"]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
If you see any of the following, go to [Discord](https://discord.gg/pterodactyl) and report your error in a support channel.
|
||||||
|
* `A fatal error was encountered while starting this server.`
|
||||||
|
* `No server egg configuration could be located; aborting startup.`
|
||||||
|
|
||||||
|
Make sure there are no existing bug reports by searching the the issues for [install bugs](https://github.com/parkervcp/eggs/labels/install%20bug).
|
||||||
|
- type: input
|
||||||
|
id: panel-version
|
||||||
|
attributes:
|
||||||
|
label: Panel Version
|
||||||
|
description: Version number of your Panel (latest is not a version)
|
||||||
|
placeholder: 1.x.x
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: wings-version
|
||||||
|
attributes:
|
||||||
|
label: Wings Version
|
||||||
|
description: Version number of your Wings (latest is not a version)
|
||||||
|
placeholder: 1.x.x
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: service
|
||||||
|
attributes:
|
||||||
|
label: Service
|
||||||
|
description: Service you are experiencing issues with
|
||||||
|
placeholder: minecraft/factorio/etc
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: dropdown
|
||||||
|
id: modified
|
||||||
|
attributes:
|
||||||
|
label: Modified
|
||||||
|
description: Did you add or change things, this includes startup configs/install scripts/variables
|
||||||
|
options:
|
||||||
|
- Yes, I modified the egg (will provide details below)
|
||||||
|
- No, I did not modify the egg
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: expected-behavior
|
||||||
|
attributes:
|
||||||
|
label: Expected Behavior
|
||||||
|
description: What did you expect to happen
|
||||||
|
placeholder: Install the server, start it, play
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: actual-behavior
|
||||||
|
attributes:
|
||||||
|
label: Actual Behavior
|
||||||
|
description: What actually happened instead
|
||||||
|
placeholder: Server crashed with error X
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: reproduce-steps
|
||||||
|
attributes:
|
||||||
|
label: Steps To Reproduce
|
||||||
|
description: Step by step what to do to cause the issue
|
||||||
|
placeholder: |
|
||||||
|
Step 1 Set version to latest
|
||||||
|
Step 2 install
|
||||||
|
Step 3 Receive error X or Y
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: install-logs
|
||||||
|
attributes:
|
||||||
|
label: Install logs
|
||||||
|
description: |
|
||||||
|
Run the command below on the SSH terminal of your Wings machine and provide the link to logs.
|
||||||
|
|
||||||
|
```
|
||||||
|
tail -n 1000 $(ls -Alrt /var/log/pterodactyl/install/*.log | tail -1 | sed 's/ */ /g' | cut -s -d' ' -f9) | nc pteropaste.com 99
|
||||||
|
```
|
||||||
|
placeholder: |
|
||||||
|
https://pteropaste.com/exampleLogs
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
@@ -1,22 +1,33 @@
|
|||||||
### All Submissions:
|
# Description
|
||||||
|
|
||||||
* [ ] Have you followed the guidelines in our Contributing document?
|
<!-- Please explain what is being changed or added as a short overview for this PR. Also, link existing relevant issues if they exist with resolves # -->
|
||||||
|
|
||||||
|
## Checklist for all submissions
|
||||||
|
|
||||||
|
<!-- insert X into the brackets to mark it as done (i.e. [x]). You can click preview to make the links appear clickable. -->
|
||||||
|
|
||||||
|
* [ ] Have you followed the guidelines in our [Contributing document](https://github.com/parkervcp/eggs/blob/master/CONTRIBUTING.md)?
|
||||||
* [ ] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
|
* [ ] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
|
||||||
|
* [ ] Have you tested and reviewed your changes with confidence that everything works?
|
||||||
* [ ] Did you branch your changes and PR from that branch and not from your master branch?
|
* [ ] Did you branch your changes and PR from that branch and not from your master branch?
|
||||||
* If not, why?:
|
* If not, why?:
|
||||||
|
|
||||||
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
|
<!-- If this is an egg update fill these out -->
|
||||||
|
|
||||||
### New Server Submissions:
|
* [ ] You verify that the start command applied does not use a shell script
|
||||||
|
* [ ] If some script is needed then it is part of a current yolk or a PR to add one
|
||||||
|
* [ ] The egg was exported from the panel
|
||||||
|
|
||||||
|
<!-- You can erase the new egg submission template if you're not adding a completely new egg -->
|
||||||
|
|
||||||
|
## New egg Submissions
|
||||||
|
|
||||||
1. [ ] Does your submission pass tests (server is connectable)?
|
1. [ ] Does your submission pass tests (server is connectable)?
|
||||||
2. [ ] Does your server use a custom docker image?
|
2. [ ] Does your egg use a custom docker image?
|
||||||
* [ ] Have you tried to use a generic image?
|
* [ ] Have you tried to use a generic image?
|
||||||
* [ ] Did you PR the necessary changes to make it work?
|
* [ ] Did you PR the necessary changes to make it work?
|
||||||
3. [ ] Have you added the server to the main README.md?
|
3. [ ] Have you added the egg to the main README.md and any other README files in subdirectories of the egg (e.g /game_eggs) according to the alphabetical order?
|
||||||
4. [ ] Have you added a unique README.md for the server you are adding?
|
4. [ ] Have you added a unique README.md for the egg you are adding according to the alphabetical order?
|
||||||
|
5. [ ] You verify that the start command applied does not use a shell script
|
||||||
### Changes to an existing Egg:
|
* [ ] If some script is needed then it is part of a current yolk or a PR to add one
|
||||||
|
6. [ ] The egg was exported from the panel
|
||||||
1. [ ] Have you added an explanation of what your changes do and why you'd like us to include them?
|
|
||||||
2. [ ] Have you tested your Egg changes?
|
|
||||||
@@ -2,3 +2,4 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
.vuepress/*
|
.vuepress/*
|
||||||
.vscode
|
.vscode
|
||||||
|
.idea
|
||||||
+47
-23
@@ -1,52 +1,76 @@
|
|||||||
# So you want to make an Egg
|
# How to contribute
|
||||||
|
|
||||||
## General rules
|
You can contribute by either creating a new pull request or testing [existing pull requests](https://github.com/parkervcp/eggs/pulls) and commenting on whether the egg works for you or not. Testing is very important and helpful!
|
||||||
|
|
||||||
|
## General rules for eggs
|
||||||
|
|
||||||
1. Keep it simple.
|
1. Don't be afraid to submit PR's to the egg repo.
|
||||||
We don't need 8 miles of install script.
|
I don't bite. I will work with you on the egg and the required things to run it. Feel free to open a draft PR if you don't quite have the egg finished yet by yourself.
|
||||||
|
|
||||||
2. Keep it Small.
|
2. Keep it secure.
|
||||||
Only use what is absolutely needed.
|
No start scripts that a user can edit.
|
||||||
|
If a start script is needed it should be part of a yolk.
|
||||||
|
|
||||||
3. Try to stay in the stock containers.
|
3. Keep it simple.
|
||||||
If you need something in a container, open a PR in [my yolks repo](https://github.com/parkervcp/yolks) where I can review and pull it up to the main repo. In addition, there is a larger quantity of [images here](https://github.com/parkervcp/images) for you to use that have not been migrated to Yolks yet.
|
We don't need 8 miles of the install script.
|
||||||
|
|
||||||
4. Don't be afraid to submit PR's to the egg repo.
|
4. Keep it small.
|
||||||
I don't bite. I will work with you on the egg and the required things to run it.
|
Only use what is absolutely needed. The [yolks install images](https://github.com/parkervcp/yolks#installation-images) already contain the most basic packages that speeds up the installation process.
|
||||||
|
|
||||||
|
5. Use the stock images.
|
||||||
|
If you need something in an image, open a PR in [my yolks repo](https://github.com/parkervcp/yolks) where it can be reviewed and built. Self-hosted or third-party images won't be accepted for security reasons.
|
||||||
|
|
||||||
|
6. Export eggs from the panel
|
||||||
|
We ask that you use the panel to manage and export eggs.
|
||||||
|
This keeps the egg format correctly
|
||||||
|
|
||||||
|
### Sources for working on a new egg
|
||||||
|
|
||||||
|
Look at existing eggs to see how they work. In most cases, you can take the existing egg as your new template. There's a brief documentation on how to [create eggs](https://pterodactyl.io/community/config/eggs/creating_a_custom_egg.html) and [Docker images](https://pterodactyl.io/community/config/eggs/creating_a_custom_image.html).
|
||||||
|
|
||||||
|
Use existing Docker images for your egg. You can find them in [Parkers Yolks fork](https://github.com/parkervcp/yolks) and [Pterodactyl Yolks](https://github.com/pterodactyl/yolks).
|
||||||
|
|
||||||
|
We have a collection of [existing install script snippets](https://github.com/parkervcp/eggs/tree/master/scripts) that you can use.
|
||||||
|
|
||||||
## Step 1
|
## Step 1
|
||||||
|
|
||||||
### Be aware of the pterodactyl install process
|
### Be aware of the pterodactyl install process
|
||||||
|
|
||||||
The Pterodactyl install process is fairly simple once you know.
|
The Pterodactyl install process is fairly simple once you know it.
|
||||||
|
|
||||||
```md
|
```md
|
||||||
1. Spin up install container
|
1. Spin up install container
|
||||||
This uses a volume mount on /mnt/server for the server files.
|
Creates a new container using an install image that's run as root.
|
||||||
This can pull or set up all that is needed to run the server.
|
Uses a volume mount on `/mnt/server` for the server files, which is the working directory during installation.
|
||||||
It is regularly used to just download the files required. Such as server files and configs.
|
The volume will be later mounted as `/home/container` for the server container. Any files outside of `/mnt/server` will be gone after installation.
|
||||||
|
Install script can pull files or set up all that is needed to run the server, such as writing files, directories or compiling apps.
|
||||||
|
It is regularly used to just download the files required. Such as server files and configs.
|
||||||
|
|
||||||
|
|
||||||
2. Stop install container
|
2. Stop and destroy install container
|
||||||
|
|
||||||
3. Start a new container with the server files in /home/container
|
3. Start a new container with the server files in /home/container
|
||||||
This is where the server is actually run.
|
This is where the server is actually run. No root privileges.
|
||||||
Any dependencies installed during the install process are gone.
|
Any dependencies installed during the install process are gone.
|
||||||
The container that is started should have everything you need.
|
The container that is started should have everything you need.
|
||||||
|
No packages can be installed. Any required dependencies must exist in the used Docker image.
|
||||||
```
|
```
|
||||||
|
|
||||||
## Step 2
|
## Step 2
|
||||||
|
|
||||||
### Testing
|
### Testing
|
||||||
|
|
||||||
Make sure your install process is rock solid as I will be testing eggs before they ever hit my repo.
|
Make sure your install process is rock solid as eggs will be tested before they are merged.
|
||||||
|
|
||||||
I will make suggestions and changes at will.
|
Suggestions and changes will be made at will.
|
||||||
This is to maintain a clean repo that others can pull and be fully aware of what is being done.
|
This is to maintain a clean repo that others can pull and be fully aware of what is being done.
|
||||||
|
|
||||||
## Step 3
|
## Step 3
|
||||||
|
|
||||||
### Make a branch and do your work in there
|
### Make a branch and do your work in there
|
||||||
|
|
||||||
I have been getting messy PR's due to people always PRing from their master branch. Please make a seperate branch and PR from there.
|
I have been getting messy PR's due to people always PRing from their master branch. Please make a separate branch and PR from there.
|
||||||
|
|
||||||
|
## Step 4
|
||||||
|
|
||||||
|
Open a new pull request and fill in the template. Make sure that the readme files have been updated to include the new egg.
|
||||||
|
|||||||
@@ -26,20 +26,21 @@ If you are reading this it looks like you are looking to add an egg to your serv
|
|||||||
|
|
||||||
[Discord](/bots/discord)
|
[Discord](/bots/discord)
|
||||||
|
|
||||||
|
**Note:** these are actual Discord bot eggs, NOT language eggs. The old language eggs (discord-js-generic, discord-py-generic, etc) have been moved to the [generic languages section](#generic-languages).
|
||||||
|
|
||||||
|
* [Aoede](/bots/discord/aoede) Rust
|
||||||
* [ATL Bot](/bots/discord/atlbot) Node JS
|
* [ATL Bot](/bots/discord/atlbot) Node JS
|
||||||
* [Bastion](/bots/discord/bastion) Node JS
|
* [Bastion](/bots/discord/bastion) Node JS
|
||||||
* [CorpBot](/bots/discord/corpbot) Python
|
* [CorpBot](/bots/discord/corpbot) Python
|
||||||
* [discordgo](bots/discord/discordgo) Golang generic
|
|
||||||
* [discord.java](bots/discord/discord.java) Java generic
|
|
||||||
* [discord.js](bots/discord/discord.js) Node JS generic
|
|
||||||
* [discord.py](bots/discord/discord.py) Python generic
|
|
||||||
* [Dynamica](/bots/discord/dynamica) Node JS
|
* [Dynamica](/bots/discord/dynamica) Node JS
|
||||||
* [fragbot](/bots/discord/fragbot) Golang
|
* [fragbot](/bots/discord/fragbot) Golang
|
||||||
|
* [Game Server Watcher](/bots/discord/game-server-watcher) Node JS
|
||||||
* [JMusicBot](/bots/discord/jmusicbot) Java
|
* [JMusicBot](/bots/discord/jmusicbot) Java
|
||||||
* [nodemon.js](bots/discord/nodemon.js) Nodemon JS generic
|
* [Muse](/bots/discord/muse) Node JS
|
||||||
* [parkertron](/bots/discord/parkertron) Golang
|
* [parkertron](/bots/discord/parkertron) Golang
|
||||||
* [pixel-bot](/bots/discord/pixelbot) Python
|
* [pixel-bot](/bots/discord/pixelbot) Python
|
||||||
* [Redbot](/bots/discord/redbot) Python
|
* [Redbot](/bots/discord/redbot) Python
|
||||||
|
* [Ree6](/bots/discord/ree6) Java
|
||||||
* [SinusBot](/bots/discord/sinusbot)
|
* [SinusBot](/bots/discord/sinusbot)
|
||||||
|
|
||||||
[Other](/bots/other)
|
[Other](/bots/other)
|
||||||
@@ -55,6 +56,21 @@ If you are reading this it looks like you are looking to add an egg to your serv
|
|||||||
|
|
||||||
* [JTS3ServerMod](/bots/teamspeak3/jts3servermod)
|
* [JTS3ServerMod](/bots/teamspeak3/jts3servermod)
|
||||||
|
|
||||||
|
## [Generic Languages](/generic)
|
||||||
|
|
||||||
|
* [C#](/generic/c%23/)
|
||||||
|
* [elixir](/generic/elixir/)
|
||||||
|
* [dart](/generic/dart/)
|
||||||
|
* [deno](/generic/deno/)
|
||||||
|
* [golang](/generic/golang/)
|
||||||
|
* [java](/generic/java/)
|
||||||
|
* [lua](/generic/lua/)
|
||||||
|
* [nodejs](/generic/nodejs/)
|
||||||
|
* [bun](/generic/bun/)
|
||||||
|
* [nodemon](/generic/nodemon/)
|
||||||
|
* [python](/generic/python/)
|
||||||
|
* [rust](/generic/rust/)
|
||||||
|
|
||||||
## [Database](/database)
|
## [Database](/database)
|
||||||
|
|
||||||
### In-Memory Databases
|
### In-Memory Databases
|
||||||
@@ -63,10 +79,12 @@ If you are reading this it looks like you are looking to add an egg to your serv
|
|||||||
|
|
||||||
* [Redis 5](/database/redis/redis-5)
|
* [Redis 5](/database/redis/redis-5)
|
||||||
* [Redis 6](/database/redis/redis-6)
|
* [Redis 6](/database/redis/redis-6)
|
||||||
|
* [Redis 7](/database/redis/redis-7)
|
||||||
|
|
||||||
### noSQL
|
### noSQL
|
||||||
|
|
||||||
* [mongoDB](/database/nosql/mongodb)
|
* [MongoDB](/database/nosql/mongodb)
|
||||||
|
* [rethinkdb](/database/nosql/rethinkdb)
|
||||||
|
|
||||||
### SQL Databases
|
### SQL Databases
|
||||||
|
|
||||||
@@ -76,6 +94,7 @@ If you are reading this it looks like you are looking to add an egg to your serv
|
|||||||
## [Voice Servers](/voice_servers)
|
## [Voice Servers](/voice_servers)
|
||||||
|
|
||||||
* [Lavalink](/voice_servers/lavalink)
|
* [Lavalink](/voice_servers/lavalink)
|
||||||
|
* [Teamspeak_ARM64](/voice_servers/teamspeak_ARM64)
|
||||||
* [TeaSpeak](/voice_servers/teaspeak)
|
* [TeaSpeak](/voice_servers/teaspeak)
|
||||||
* [TS3-Manager](/voice_servers/ts3_manager)
|
* [TS3-Manager](/voice_servers/ts3_manager)
|
||||||
|
|
||||||
@@ -83,8 +102,9 @@ If you are reading this it looks like you are looking to add an egg to your serv
|
|||||||
|
|
||||||
[Among Us](game_eggs/among_us)
|
[Among Us](game_eggs/among_us)
|
||||||
|
|
||||||
* [Impostor Server](game_eggs/among_us/impostor_server)
|
* [BetterCrewLink Server](game_eggs/among_us/bettercrewlink_server)
|
||||||
* [CrewLink Server](game_eggs/among_us/crewlink_server)
|
* [CrewLink Server](game_eggs/among_us/crewlink_server)
|
||||||
|
* [Impostor Server](game_eggs/among_us/impostor_server)
|
||||||
|
|
||||||
[BeamNG.drive](game_eggs/beamng)
|
[BeamNG.drive](game_eggs/beamng)
|
||||||
|
|
||||||
@@ -95,7 +115,19 @@ If you are reading this it looks like you are looking to add an egg to your serv
|
|||||||
|
|
||||||
* [MCGalaxy](game_eggs/classicube/mcgalaxy)
|
* [MCGalaxy](game_eggs/classicube/mcgalaxy)
|
||||||
|
|
||||||
[Call of Duty 4X](game_eggs/cod/cod4x)
|
[Clone Hero](game_eggs/clone_hero)
|
||||||
|
|
||||||
|
[CS2D](game_eggs/cs2d)
|
||||||
|
|
||||||
|
[Cube Engine](cubeengine)
|
||||||
|
|
||||||
|
* [AssaultCube](cubeengine/assaultcube)
|
||||||
|
* [Cube 2: Sauerbraten](cubeengine/cube2)
|
||||||
|
|
||||||
|
[DDRaceNetwork](game_eggs/ddracenetwork)
|
||||||
|
|
||||||
|
[Doom](game_eggs/doom)
|
||||||
|
* [Zandronum](game_eggs/doom/zandronum)
|
||||||
|
|
||||||
[ET Legacy](game_eggs/enemy_territory/etlegacy)
|
[ET Legacy](game_eggs/enemy_territory/etlegacy)
|
||||||
|
|
||||||
@@ -105,51 +137,65 @@ If you are reading this it looks like you are looking to add an egg to your serv
|
|||||||
|
|
||||||
* [Vanilla](game_eggs/factorio/factorio)
|
* [Vanilla](game_eggs/factorio/factorio)
|
||||||
* [ModUpdate](game_eggs/factorio/factorio-modupdate)
|
* [ModUpdate](game_eggs/factorio/factorio-modupdate)
|
||||||
|
* [Clusterio](game_eggs/factorio/clusterio)
|
||||||
|
|
||||||
[Grand Theft Auto](game_eggs/gta)
|
[Grand Theft Auto](game_eggs/gta)
|
||||||
|
|
||||||
* GTA V
|
* GTA V
|
||||||
* [FiveM](game_eggs/gta/fivem)
|
* [FiveM](game_eggs/gta/fivem)
|
||||||
|
* [ragecoop](game_eggs/gta/ragecoop)
|
||||||
* [RageMP](game_eggs/gta/ragemp)
|
* [RageMP](game_eggs/gta/ragemp)
|
||||||
* [alt:V](game_eggs/gta/altv)
|
* [alt:V](game_eggs/gta/altv)
|
||||||
|
|
||||||
* GTA SA
|
* GTA SA
|
||||||
* [Multi Theft Auto](game_eggs/gta/mtasa)
|
* [Multi Theft Auto](game_eggs/gta/mtasa)
|
||||||
* [SA-MP](game_eggs/gta/samp)
|
* [SA-MP](game_eggs/gta/samp)
|
||||||
|
* [OpenMp](game_eggs/gta/openmp)
|
||||||
|
|
||||||
* GTA
|
* GTA
|
||||||
* [GTAC](game_eggs/gta/gtac)
|
* [GTAC](game_eggs/gta/gtac)
|
||||||
|
|
||||||
|
[Hogwarp](game_eggs/hogwarp)
|
||||||
|
|
||||||
|
[Kerbal Space Program](game_eggs/ksp)
|
||||||
|
|
||||||
|
[League Sandbox](game_eggs/leaguesandbox)
|
||||||
|
|
||||||
|
[Los Angeles Crimes](game_eggs/losangelescrimes)
|
||||||
|
|
||||||
[Mindustry](game_eggs/mindustry)
|
[Mindustry](game_eggs/mindustry)
|
||||||
|
|
||||||
* [Mindustry](game_eggs/mindustry/mindustry)
|
* [Mindustry](game_eggs/mindustry/mindustry)
|
||||||
|
|
||||||
[League Sandbox](game_eggs/leaguesandbox)
|
|
||||||
|
|
||||||
[Minetest](game_eggs/minetest) (including MTG)
|
[Minetest](game_eggs/minetest) (including MTG)
|
||||||
|
|
||||||
* [Minetest](game_eggs/minetest/minetest)
|
* [Minetest](game_eggs/minetest)
|
||||||
|
|
||||||
[Minecraft](game_eggs/minecraft)
|
[Minecraft](game_eggs/minecraft)
|
||||||
|
|
||||||
* [Bedrock](game_eggs/minecraft/bedrock) Servers for Bedrock Minecraft (Windows 10, mobile, console)
|
* [Bedrock](game_eggs/minecraft/bedrock) Servers for Bedrock Minecraft (Windows, mobile, console)
|
||||||
* [Bedrock](game_eggs/minecraft/bedrock/bedrock)
|
* [Bedrock](game_eggs/minecraft/bedrock/bedrock)
|
||||||
* [gomint](game_eggs/minecraft/bedrock/gomint)
|
* [gomint](game_eggs/minecraft/bedrock/gomint)
|
||||||
|
* [LiteLoaderBDS](game_eggs/bedrock/LiteLoader-bedrock)
|
||||||
* [Nukkit](game_eggs/minecraft/bedrock/nukkit)
|
* [Nukkit](game_eggs/minecraft/bedrock/nukkit)
|
||||||
* [PocketMine MP](game_eggs/minecraft/bedrock/pocketmine_mp)
|
* [PocketMine MP](game_eggs/minecraft/bedrock/pocketmine_mp)
|
||||||
|
* [PowerNukkitX](game_eggs/minecraft/bedrock/PowerNukkitX)
|
||||||
|
|
||||||
* [Java](game_eggs/minecraft/java) Servers for Java Minecraft
|
* [Java](game_eggs/minecraft/java) Servers for Java Minecraft
|
||||||
* [Airplane](game_eggs/minecraft/java/airplane)
|
* [CurseForge](game_eggs/minecraft/java/curseforge)
|
||||||
* [Cuberite](game_eggs/minecraft/java/cuberite)
|
* [Cuberite](game_eggs/minecraft/java/cuberite)
|
||||||
* [Fabric](game_eggs/minecraft/java/fabric)
|
* [Fabric](game_eggs/minecraft/java/fabric)
|
||||||
* [Feather](game_eggs/minecraft/java/feather)
|
* [Feather](game_eggs/minecraft/java/feather)
|
||||||
* [Feed The Beast](game_eggs/minecraft/java/ftb)
|
* [Feed The Beast](game_eggs/minecraft/java/ftb)
|
||||||
* [Forge](game_eggs/minecraft/java/forge)
|
* [Forge](game_eggs/minecraft/java/forge)
|
||||||
* [Glowstone](game_eggs/minecraft/java/glowstone)
|
* [Glowstone](game_eggs/minecraft/java/glowstone)
|
||||||
|
* [Limbo](game_eggs/minecraft/java/limbo)
|
||||||
* [Magma](game_eggs/minecraft/java/magma)
|
* [Magma](game_eggs/minecraft/java/magma)
|
||||||
|
* [Modrinth](game_eggs/minecraft/java/modrinth)
|
||||||
* [Mohist](game_eggs/minecraft/java/mohist)
|
* [Mohist](game_eggs/minecraft/java/mohist)
|
||||||
* [NanoLimbo](/game_eggs/minecraft/java/nanolimbo)
|
* [NanoLimbo](game_eggs/minecraft/java/nanolimbo)
|
||||||
* [Paper](game_eggs/minecraft/java/paper)
|
* [Paper](game_eggs/minecraft/java/paper)
|
||||||
|
* [Folia](game_eggs/minecraft/java/folia)
|
||||||
* [Purpur](game_eggs/minecraft/java/purpur)
|
* [Purpur](game_eggs/minecraft/java/purpur)
|
||||||
* [Spigot](game_eggs/minecraft/java/spigot)
|
* [Spigot](game_eggs/minecraft/java/spigot)
|
||||||
* [SpongeForge](game_eggs/minecraft/java/spongeforge)
|
* [SpongeForge](game_eggs/minecraft/java/spongeforge)
|
||||||
@@ -157,11 +203,12 @@ If you are reading this it looks like you are looking to add an egg to your serv
|
|||||||
* [Technic](game_eggs/minecraft/java/technic)
|
* [Technic](game_eggs/minecraft/java/technic)
|
||||||
* [VanillaCord](game_eggs/minecraft/java/vanillacord)
|
* [VanillaCord](game_eggs/minecraft/java/vanillacord)
|
||||||
|
|
||||||
|
* [Crossplay](game_eggs/minecraft/crossplay/) servers for crossplay between Bedrock and Java edition
|
||||||
|
* [Purpur-GeyserMC-Floodgate](game_eggs/minecraft/crossplay/purpur-geysermc-floodgate/)
|
||||||
|
|
||||||
* [Proxies](game_eggs/minecraft/proxy) Minecraft Server Proxies
|
* [Proxies](game_eggs/minecraft/proxy) Minecraft Server Proxies
|
||||||
* [Java](game_eggs/minecraft/proxy/java)
|
* [Java](game_eggs/minecraft/proxy/java)
|
||||||
* [FlameCord](game_eggs/minecraft/proxy/java/flamecord)
|
|
||||||
* [Travertine](game_eggs/minecraft/proxy/java/travertine)
|
* [Travertine](game_eggs/minecraft/proxy/java/travertine)
|
||||||
* [TyphoonLimbo](game_eggs/minecraft/proxy/java/typhoonlimbo)
|
|
||||||
* [Velocity](game_eggs/minecraft/proxy/java/velocity)
|
* [Velocity](game_eggs/minecraft/proxy/java/velocity)
|
||||||
* [Waterfall](game_eggs/minecraft/proxy/java/waterfall)
|
* [Waterfall](game_eggs/minecraft/proxy/java/waterfall)
|
||||||
* [Bedrock](game_eggs/minecraft/proxy/bedrock)
|
* [Bedrock](game_eggs/minecraft/proxy/bedrock)
|
||||||
@@ -184,66 +231,110 @@ If you are reading this it looks like you are looking to add an egg to your serv
|
|||||||
|
|
||||||
* [RedM](game_eggs/rdr/redm)
|
* [RedM](game_eggs/rdr/redm)
|
||||||
|
|
||||||
|
[Spacestation 14](game_eggs/spacestation_14)
|
||||||
|
|
||||||
|
[Rimworld](game_eggs/rimworld)
|
||||||
|
|
||||||
|
* [Open World](game_eggs/rimworld/open_world)
|
||||||
|
|
||||||
[SteamCMD Servers](game_eggs/steamcmd_servers) These eggs use SteamCMD to install
|
[SteamCMD Servers](game_eggs/steamcmd_servers) These eggs use SteamCMD to install
|
||||||
|
|
||||||
* [7 Days to Die](game_eggs/steamcmd_servers/7_days_to_die)
|
* [7 Days to Die](game_eggs/steamcmd_servers/7_days_to_die)
|
||||||
|
* [ARK: Survival Ascended](game_eggs/steamcmd_servers/ark_survival_ascended)
|
||||||
* [ARK: Survival Evolved](game_eggs/steamcmd_servers/ark_survival_evolved)
|
* [ARK: Survival Evolved](game_eggs/steamcmd_servers/ark_survival_evolved)
|
||||||
* [Arma](game_eggs/steamcmd_servers/arma)
|
* [Arma](game_eggs/steamcmd_servers/arma)
|
||||||
* [Arma 3](game_eggs/steamcmd_servers/arma/arma3)
|
* [Arma 3](game_eggs/steamcmd_servers/arma/arma3)
|
||||||
* [Arma Reforger](game_eggs/steamcmd_servers/arma/arma_reforger)
|
* [Arma Reforger](game_eggs/steamcmd_servers/arma/arma_reforger)
|
||||||
* [Assetto Corsa](game_eggs/steamcmd_servers/assetto_corsa)
|
* [Assetto Corsa](game_eggs/steamcmd_servers/assetto_corsa)
|
||||||
|
* [Astro Colony](game_eggs/steamcmd_servers/astro_colony)
|
||||||
|
* [Astroneer](game_eggs/steamcmd_servers/astroneer)
|
||||||
* [Avorion](game_eggs/steamcmd_servers/avorion)
|
* [Avorion](game_eggs/steamcmd_servers/avorion)
|
||||||
* [Barotrauma](game_eggs/steamcmd_servers/barotrauma)
|
* [Barotrauma](game_eggs/steamcmd_servers/barotrauma)
|
||||||
|
* [BATTALION: Legacy](game_eggs/steamcmd_servers/battalion_legacy)
|
||||||
|
* [Black Mesa](game_eggs/steamcmd_servers/black_mesa)
|
||||||
* [Citadel: Forged with Fire](game_eggs/steamcmd_servers/citadel)
|
* [Citadel: Forged with Fire](game_eggs/steamcmd_servers/citadel)
|
||||||
* [Conan Exiles](game_eggs/steamcmd_servers/conan_exiles)
|
* [Conan Exiles](game_eggs/steamcmd_servers/conan_exiles)
|
||||||
|
* [Core Keeper](game_eggs/steamcmd_servers/core_keeper)
|
||||||
|
* [Counter-Strike](game_eggs/steamcmd_servers/counter_strike/)
|
||||||
|
* [Counter-Strike: Source](game_eggs/steamcmd_servers/counter_strike/counter_strike_source/)
|
||||||
* [Craftopia](game_eggs/steamcmd_servers/craftopia)
|
* [Craftopia](game_eggs/steamcmd_servers/craftopia)
|
||||||
* [Cryofall](game_eggs/steamcmd_servers/cryofall)
|
* [Cryofall](game_eggs/steamcmd_servers/cryofall)
|
||||||
* [DayZ (Experimental)](game_eggs/steamcmd_servers/dayz-experimental)
|
* [DayZ (Experimental)](game_eggs/steamcmd_servers/dayz-experimental)
|
||||||
* [Don't Starve Together](game_eggs/steamcmd_servers/dont_starve)
|
* [Don't Starve Together](game_eggs/steamcmd_servers/dont_starve)
|
||||||
* [ECO](game_eggs/steamcmd_servers/eco)
|
* [ECO](game_eggs/steamcmd_servers/eco)
|
||||||
|
* [Empyrion - Galactic Survival](game_eggs/steamcmd_servers/empyrion)
|
||||||
* [Fistful of Frags](game_eggs/steamcmd_servers/fof)
|
* [Fistful of Frags](game_eggs/steamcmd_servers/fof)
|
||||||
|
* [Frozen Flame](game_eggs/steamcmd_servers/frozen_flame)
|
||||||
|
* [Ground Branch](game_eggs/steamcmd_servers/ground_branch)
|
||||||
* [HLDS Server](game_eggs/steamcmd_servers/hlds_server)
|
* [HLDS Server](game_eggs/steamcmd_servers/hlds_server)
|
||||||
|
* [HLDS Vanilla](game_eggs/steamcmd_servers/hlds_server/vanilla)
|
||||||
|
* [ReHLDS](game_eggs/steamcmd_servers/hlds_server/rehlds)
|
||||||
* [Holdfast: Nations At War](game_eggs/steamcmd_servers/holdfast)
|
* [Holdfast: Nations At War](game_eggs/steamcmd_servers/holdfast)
|
||||||
* [Hurtworld](game_eggs/steamcmd_servers/hurtworld)
|
* [Hurtworld](game_eggs/steamcmd_servers/hurtworld)
|
||||||
|
* [Icarus](game_eggs/steamcmd_servers/icarus)
|
||||||
* [Insurgency: Sandstorm](game_eggs/steamcmd_servers/insurgency_sandstorm)
|
* [Insurgency: Sandstorm](game_eggs/steamcmd_servers/insurgency_sandstorm)
|
||||||
|
* [iosoccer](game_eggs/steamcmd_servers/iosoccer)
|
||||||
* [Killing Floor 2](game_eggs/steamcmd_servers/killing_floor_2)
|
* [Killing Floor 2](game_eggs/steamcmd_servers/killing_floor_2)
|
||||||
* [Left 4 Dead](game_eggs/steamcmd_servers/left4dead)
|
* [Left 4 Dead](game_eggs/steamcmd_servers/left4dead)
|
||||||
* [Left 4 Dead 2](game_eggs/steamcmd_servers/left4dead_2)
|
* [Left 4 Dead 2](game_eggs/steamcmd_servers/left4dead_2)
|
||||||
* [Modiverse](game_eggs/steamcmd_servers/modiverse)
|
* [Modiverse](game_eggs/steamcmd_servers/modiverse)
|
||||||
* [Mordhau](game_eggs/steamcmd_servers/mordhau)
|
* [Mordhau](game_eggs/steamcmd_servers/mordhau)
|
||||||
|
* [Mount & Blade II: Bannerlord](game_eggs/steamcmd_servers/mount_blade_II_bannerlord)
|
||||||
|
* [Neos VR](game_eggs/steamcmd_servers/neosvr)
|
||||||
* [No More Room in Hell](game_eggs/steamcmd_servers/nmrih)
|
* [No More Room in Hell](game_eggs/steamcmd_servers/nmrih)
|
||||||
|
* [No One Survived](game_eggs/steamcmd_servers/no_one_survived)
|
||||||
* [Onset](game_eggs/steamcmd_servers/onset)
|
* [Onset](game_eggs/steamcmd_servers/onset)
|
||||||
|
* [Open Fortress](game_eggs/steamcmd_servers/open_fortress)
|
||||||
|
* [Operation Harsh Doorstop](game_eggs/steamcmd_servers/operation_harsh_doorstop)
|
||||||
* [Pavlov VR](game_eggs/steamcmd_servers/pavlov_vr)
|
* [Pavlov VR](game_eggs/steamcmd_servers/pavlov_vr)
|
||||||
* [PixARK](game_eggs/steamcmd_servers/pixark)
|
* [PixARK](game_eggs/steamcmd_servers/pixark)
|
||||||
|
* [Portal Knights](game_eggs/steamcmd_servers/portal_knights)
|
||||||
* [Post Scriptum](game_eggs/steamcmd_servers/post_scriptum)
|
* [Post Scriptum](game_eggs/steamcmd_servers/post_scriptum)
|
||||||
* [Project Zomboid](game_eggs/steamcmd_servers/project_zomboid)
|
* [Project Zomboid](game_eggs/steamcmd_servers/project_zomboid)
|
||||||
* [Quake Live](game_eggs/steamcmd_servers/quake_live)
|
* [Quake Live](game_eggs/steamcmd_servers/quake_live)
|
||||||
|
* [Resonite](game_eggs/steamcmd_servers/resonite)
|
||||||
* [Rising World](game_eggs/steamcmd_servers/rising_world)
|
* [Rising World](game_eggs/steamcmd_servers/rising_world)
|
||||||
* [Risk Of Rain 2](game_eggs/steamcmd_servers/risk_of_rain_2)
|
* [Risk Of Rain 2](game_eggs/steamcmd_servers/risk_of_rain_2)
|
||||||
* [Rust](game_eggs/steamcmd_servers/rust)
|
* [Rust](game_eggs/steamcmd_servers/rust)
|
||||||
* [Autowipe](game_eggs/steamcmd_servers/rust/rust_autowipe)
|
* [Autowipe](game_eggs/steamcmd_servers/rust/rust_autowipe)
|
||||||
* [Staging](game_eggs/steamcmd_servers/rust/rust_staging)
|
* [Staging](game_eggs/steamcmd_servers/rust/rust_staging)
|
||||||
* [Satisfactory](game_eggs/steamcmd_servers/satisfactory)
|
* [Satisfactory](game_eggs/steamcmd_servers/satisfactory)
|
||||||
|
* [Solace Crafting](game_eggs/steamcmd_servers/solace_crafting)
|
||||||
* [SCP: Secret Laboratory](game_eggs/steamcmd_servers/scpsl)
|
* [SCP: Secret Laboratory](game_eggs/steamcmd_servers/scpsl)
|
||||||
* [dedicated](game_eggs/steamcmd_servers/scpsl/dedicated)
|
* [dedicated](game_eggs/steamcmd_servers/scpsl/dedicated)
|
||||||
* [multiadmin](game_eggs/steamcmd_servers/scpsl/multiadmin)
|
* [exiled](game_eggs/steamcmd_servers/scpsl/exiled)
|
||||||
* [Soldat](game_eggs/steamcmd_servers/soldat)
|
* [Soldat](game_eggs/steamcmd_servers/soldat)
|
||||||
|
* [Sons of the Forest](game_eggs/steamcmd_servers/sonsoftheforest)
|
||||||
* [Space Engineers](game_eggs/steamcmd_servers/space_engineers)
|
* [Space Engineers](game_eggs/steamcmd_servers/space_engineers)
|
||||||
|
* [default](game_eggs/steamcmd_servers/space_engineers/default)
|
||||||
|
* [torch](game_eggs/steamcmd_servers/space_engineers/torch)
|
||||||
* [Squad](game_eggs/steamcmd_servers/squad)
|
* [Squad](game_eggs/steamcmd_servers/squad)
|
||||||
* [Starbound](game_eggs/steamcmd_servers/starbound)
|
* [Starbound](game_eggs/steamcmd_servers/starbound)
|
||||||
* [Stationeers](game_eggs/steamcmd_servers/stationeers)
|
* [Stationeers](game_eggs/steamcmd_servers/stationeers)
|
||||||
* [Stormworks: Build and Rescue](game_eggs/steamcmd_servers/stormworks)
|
* [Stormworks: Build and Rescue](game_eggs/steamcmd_servers/stormworks)
|
||||||
* [Subnautica: Nitrox Mod](game_eggs/steamcmd_servers/subnautica_nitrox_mod)
|
* [Subnautica: Nitrox Mod](game_eggs/steamcmd_servers/subnautica_nitrox_mod)
|
||||||
|
* [Survive The Nights](game_eggs/steamcmd_servers/survive_the_nights)
|
||||||
* [Sven Co-op](game_eggs/steamcmd_servers/svencoop)
|
* [Sven Co-op](game_eggs/steamcmd_servers/svencoop)
|
||||||
|
* [Swords 'n Magic and Stuff](game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff)
|
||||||
* [The Forest](game_eggs/steamcmd_servers/the_forest)
|
* [The Forest](game_eggs/steamcmd_servers/the_forest)
|
||||||
|
* [The Front](game_eggs/steamcmd_servers/thefront)
|
||||||
|
* [The Isle](game_eggs/steamcmd_servers/the_isle)
|
||||||
|
* [Evrima](game_eggs/steamcmd_servers/the_isle/evrima)
|
||||||
* [Team Fortress 2 Classic](game_eggs/steamcmd_servers/team_fortress_2_classic)
|
* [Team Fortress 2 Classic](game_eggs/steamcmd_servers/team_fortress_2_classic)
|
||||||
* [Tower Unite](game_eggs/steamcmd_servers/tower_unite)
|
* [Tower Unite](game_eggs/steamcmd_servers/tower_unite)
|
||||||
|
* [Truck Sim](game_eggs/steamcmd_servers/truck-simulator/)
|
||||||
|
* [American Truck Simulator](game_eggs/steamcmd_servers/truck-simulator/american-truck-simulator/)
|
||||||
|
* [Euro Truck Simulator 2](game_eggs/steamcmd_servers/truck-simulator/euro-truck-simulator2/)
|
||||||
* [Unturned](game_eggs/steamcmd_servers/unturned)
|
* [Unturned](game_eggs/steamcmd_servers/unturned)
|
||||||
* [V Rising](game_eggs/steamcmd_servers/v_rising)
|
* [V Rising](game_eggs/steamcmd_servers/v_rising)
|
||||||
|
* [V Rising Vanilla](game_eggs/steamcmd_servers/v_rising/v_rising_vanilla)
|
||||||
|
* [V Rising BepInex](game_eggs/steamcmd_servers/v_rising/v_rising_bepinex)
|
||||||
* [Valheim](game_eggs/steamcmd_servers/valheim)
|
* [Valheim](game_eggs/steamcmd_servers/valheim)
|
||||||
* [Valheim Vanilla](game_eggs/steamcmd_servers/valheim/valheim_vanilla)
|
* [Valheim Vanilla](game_eggs/steamcmd_servers/valheim/valheim_vanilla)
|
||||||
|
* [Valheim BepInEx](game_eggs/steamcmd_servers/valheim/valheim_bepinex)
|
||||||
* [Valheim Plus Mod](game_eggs/steamcmd_servers/valheim/valheim_plus)
|
* [Valheim Plus Mod](game_eggs/steamcmd_servers/valheim/valheim_plus)
|
||||||
|
|
||||||
|
|
||||||
[Teeworlds](game_eggs/teeworlds)
|
[Teeworlds](game_eggs/teeworlds)
|
||||||
|
|
||||||
* [Teeworlds](game_eggs/teeworlds/teeworlds)
|
* [Teeworlds](game_eggs/teeworlds/teeworlds)
|
||||||
@@ -255,21 +346,28 @@ If you are reading this it looks like you are looking to add an egg to your serv
|
|||||||
* [TShock](game_eggs/terraria/tshock)
|
* [TShock](game_eggs/terraria/tshock)
|
||||||
|
|
||||||
[Tycoon Games](game_eggs/tycoon_games)
|
[Tycoon Games](game_eggs/tycoon_games)
|
||||||
|
|
||||||
* [OpenRCT2](game_eggs/tycoon_games/openrct2)
|
* [OpenRCT2](game_eggs/tycoon_games/openrct2)
|
||||||
* [OpenTTD](game_eggs/tycoon_games/openttd)
|
* [OpenTTD](game_eggs/tycoon_games/openttd)
|
||||||
|
|
||||||
[Veloren](game_eggs/veloren)
|
[Veloren](game_eggs/veloren)
|
||||||
|
|
||||||
[Vintage Story](game_eggs/vintage_story/vintage_story)
|
[Vintage Story](game_eggs/vintage_story)
|
||||||
|
|
||||||
[Wine Generic](game_eggs/wine/generic)
|
[Wine Generic](game_eggs/wine/generic)
|
||||||
|
|
||||||
[Xonotic](game_eggs/xonotic/xonotic)
|
[Xonotic](game_eggs/xonotic/xonotic)
|
||||||
|
|
||||||
|
[YuzuEmu](game_eggs/yuzu-emu)
|
||||||
|
|
||||||
[FoundryVTT](game_eggs/FoundryVTT)
|
[FoundryVTT](game_eggs/FoundryVTT)
|
||||||
|
|
||||||
## [Monitoring](/monitoring/)
|
## [Monitoring](/monitoring/)
|
||||||
|
|
||||||
|
### Loki
|
||||||
|
|
||||||
|
* [Loki](/monitoring/loki)
|
||||||
|
|
||||||
### Prometheus
|
### Prometheus
|
||||||
|
|
||||||
* [Prometheus](/monitoring/prometheus)
|
* [Prometheus](/monitoring/prometheus)
|
||||||
@@ -280,6 +378,10 @@ If you are reading this it looks like you are looking to add an egg to your serv
|
|||||||
|
|
||||||
* [minio](/storage/minio)
|
* [minio](/storage/minio)
|
||||||
|
|
||||||
|
### SFTP Storage Share ("Empty Egg")
|
||||||
|
|
||||||
|
* [SFTP Storage Share](/storage/sftp_storage_share)
|
||||||
|
|
||||||
## [Software](/software/)
|
## [Software](/software/)
|
||||||
|
|
||||||
### Code Server
|
### Code Server
|
||||||
@@ -290,6 +392,10 @@ If you are reading this it looks like you are looking to add an egg to your serv
|
|||||||
|
|
||||||
* [Elasticsearch](/software/elasticsearch)
|
* [Elasticsearch](/software/elasticsearch)
|
||||||
|
|
||||||
|
### Folding@Home
|
||||||
|
|
||||||
|
* [Folding@Home](/software/foldingathome)
|
||||||
|
|
||||||
### Gitea
|
### Gitea
|
||||||
|
|
||||||
* [Gitea](/software/gitea)
|
* [Gitea](/software/gitea)
|
||||||
@@ -302,8 +408,34 @@ If you are reading this it looks like you are looking to add an egg to your serv
|
|||||||
|
|
||||||
* [haste-server](/software/haste-server)
|
* [haste-server](/software/haste-server)
|
||||||
|
|
||||||
|
### LanguageTool
|
||||||
|
|
||||||
|
* [languagetool](/software/languagetool)
|
||||||
|
|
||||||
|
### Meilisearch
|
||||||
|
|
||||||
|
* [Meilisearch](/software/meilisearch)
|
||||||
|
|
||||||
|
### Owncast
|
||||||
|
|
||||||
|
* [owncast](/software/owncast)
|
||||||
|
|
||||||
### RabbitMQ
|
### RabbitMQ
|
||||||
|
|
||||||
* [rabbitmq](/software/rabbitmq)
|
* [rabbitmq](/software/rabbitmq)
|
||||||
|
|
||||||
|
### Reposilite
|
||||||
|
|
||||||
|
* [Reposilite](/software/reposilite)
|
||||||
|
|
||||||
|
### Uptime Kuma
|
||||||
|
|
||||||
|
* [Uptime Kuma](/software/uptime-kuma)
|
||||||
|
|
||||||
|
### Yarr
|
||||||
|
|
||||||
|
* [yarr](/software/yarr)
|
||||||
|
|
||||||
### 5e Tools
|
### 5e Tools
|
||||||
|
|
||||||
* [5e Tools](/software/5e-tools)
|
* [5e Tools](/software/5e-tools)
|
||||||
|
|||||||
+18
-18
@@ -2,6 +2,11 @@
|
|||||||
|
|
||||||
## Some of these bots support other services but are primarily Discord bots
|
## Some of these bots support other services but are primarily Discord bots
|
||||||
|
|
||||||
|
### [Aoede](aoede)
|
||||||
|
|
||||||
|
[codetheweb/aoede](https://github.com/codetheweb/aoede)
|
||||||
|
🎧 a self-hosted Spotify → Discord music bot
|
||||||
|
|
||||||
### [ATLauncher Discord Bot](atlbot)
|
### [ATLauncher Discord Bot](atlbot)
|
||||||
|
|
||||||
[ATLauncher/discord-bot](https://github.com/ATLauncher/discord-bot)
|
[ATLauncher/discord-bot](https://github.com/ATLauncher/discord-bot)
|
||||||
@@ -17,35 +22,25 @@ Give awesome perks to your Discord server!
|
|||||||
[corpnewt/CorpBot.py](https://github.com/corpnewt/CorpBot.py)
|
[corpnewt/CorpBot.py](https://github.com/corpnewt/CorpBot.py)
|
||||||
A very clumsy python bot for discord
|
A very clumsy python bot for discord
|
||||||
|
|
||||||
### [DiscordJS](discord.js)
|
|
||||||
|
|
||||||
[discord.js](https://discord.js.org/)
|
|
||||||
A generic discord.js egg for running discord bots.
|
|
||||||
|
|
||||||
### [DiscordPY](discord.py)
|
|
||||||
|
|
||||||
[discord.py](https://discordpy.readthedocs.io/en/latest/)
|
|
||||||
A generic discord.py egg for running discord bots.
|
|
||||||
|
|
||||||
### [discordgo](discordgo)
|
|
||||||
|
|
||||||
[discordgo](https://github.com/bwmarrin/discordgo)
|
|
||||||
A generic go application egg.
|
|
||||||
|
|
||||||
### [FragBot](fragbot)
|
### [FragBot](fragbot)
|
||||||
|
|
||||||
[fragforce/fragbot](https://github.com/fragforce/fragbot)
|
[fragforce/fragbot](https://github.com/fragforce/fragbot)
|
||||||
The bot that runs as the fragforce `@Fragbot` offering looking-for-group services for now
|
The bot that runs as the fragforce `@Fragbot` offering looking-for-group services for now
|
||||||
|
|
||||||
|
### [Game Server Watcher](game-server-watcher)
|
||||||
|
|
||||||
|
[a-sync/game-server-watcher](https://github.com/a-sync/game-server-watcher)
|
||||||
|
A simple discord/telegram/slack bot that can be hosted on a free service to monitor your game servers and players in style. 😎
|
||||||
|
|
||||||
### [JMusicBot](jmusicbot)
|
### [JMusicBot](jmusicbot)
|
||||||
|
|
||||||
[jagrosh/MusicBot](https://github.com/jagrosh/MusicBot)
|
[jagrosh/MusicBot](https://github.com/jagrosh/MusicBot)
|
||||||
A Discord music bot that's easy to set up and run yourself!
|
A Discord music bot that's easy to set up and run yourself!
|
||||||
|
|
||||||
### [nodemon](nodemon.js)
|
### [Muse](muse)
|
||||||
|
|
||||||
[nodemon](https://nodemon.io/)
|
[codetheweb/muse](https://github.com/codetheweb/muse)
|
||||||
A nodemon javascript egg for running and automatically restarting the node application when file changes in the directory are detected
|
🎧 a self-hosted midwestern Discord music bot that doesn't suck
|
||||||
|
|
||||||
### [parkertron](parkertron)
|
### [parkertron](parkertron)
|
||||||
|
|
||||||
@@ -63,6 +58,11 @@ Was used to test python services.
|
|||||||
[Cog-Creators/Red-DiscordBot](https://github.com/Cog-Creators/Red-DiscordBot)
|
[Cog-Creators/Red-DiscordBot](https://github.com/Cog-Creators/Red-DiscordBot)
|
||||||
A multifunction Discord bot
|
A multifunction Discord bot
|
||||||
|
|
||||||
|
### [Ree6](ree6)
|
||||||
|
|
||||||
|
[Ree6-Applications](https://github.com/Ree6-Applications/Ree6)
|
||||||
|
All-in-one, open source and 100% free Discord Bot!
|
||||||
|
|
||||||
### [SinusBot](sinusbot)
|
### [SinusBot](sinusbot)
|
||||||
|
|
||||||
[SinusBot](https://www.sinusbot.com/)
|
[SinusBot](https://www.sinusbot.com/)
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
# Aoede
|
||||||
|
|
||||||
|
### Authors / Contributors
|
||||||
|
<!-- prettier-ignore-start -->
|
||||||
|
<!-- markdownlint-disable -->
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="https://github.com/cleme29">
|
||||||
|
<img src="https://avatars.githubusercontent.com/u/8092733" width="50px;" alt=""/><br /><sub><b>cleme29</b></sub>
|
||||||
|
</a>
|
||||||
|
<br />
|
||||||
|
<a href="https://github.com/parkervcp/eggs/commits?author=cleme29" title="Codes">💻</a>
|
||||||
|
<a href="https://github.com/parkervcp/eggs/commits?author=cleme29" title="Maintains">🔨</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<!-- markdownlint-enable -->
|
||||||
|
<!-- prettier-ignore-end -->
|
||||||
|
Special thanks to Red-Thirten for providing most of the installation script and to TubaApollo & QuintenQVD0 for the Muse egg that helped build most of this one !
|
||||||
|
|
||||||
|
## Their [Github](https://github.com/codetheweb/aoede)
|
||||||
|
|
||||||
|
Aoede is a Discord music bot that directly streams from Spotify to Discord. The only interface is Spotify itself.
|
||||||
|
|
||||||
|
## Server Ports
|
||||||
|
|
||||||
|
There are no ports required for the Aoede bot
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2023-12-12T20:05:05+00:00",
|
||||||
|
"name": "Aoede",
|
||||||
|
"author": "contact@bldy.ovh",
|
||||||
|
"description": "Aoede is a Discord music bot that directly streams from Spotify to Discord. The only interface is Spotify itself.",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"ghcr.io\/parkervcp\/yolks:ubuntu": "ghcr.io\/parkervcp\/yolks:ubuntu"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": ".\/aoede",
|
||||||
|
"config": {
|
||||||
|
"files": "{}",
|
||||||
|
"startup": "{\r\n \"done\": \"Invite me with\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "^C"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "## Credits: Red-Thirten (https:\/\/github.com\/lilkingjr1) for providing most of the installation script\r\n## Credits to TubaApollo & QuintenQVD0 for the Muse egg that helped build most of this one\r\napt-get update\r\napt-get install git curl jq cmake -y -qq\r\n\r\nGITHUB_PACKAGE=\"codetheweb\/aoede\"\r\n\r\n# Find GitHub download URL for Muse for specified version\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 -r '.tarball_url')\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) | .tarball_url')\r\n else\r\n echo -e \"Could not find version \\\"${VERSION}\\\" of Muse. Defaulting to latest release...\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\r\n fi\r\nfi\r\n\r\n# Download Aoede from GitHub & Extract\r\ncd \/mnt\/server\r\necho -e \"Downloading Aoede from GitHub...\"\r\ncurl -L ${DOWNLOAD_URL} -o aoede.tar.gz\r\necho -e \"Extracting Aoede from tarball...\"\r\ntar -xvzf aoede.tar.gz --strip-components=1\r\nrm aoede.tar.gz\r\n\r\n# Verify and clean up Aoede installation\r\nif [ ! -f Cargo.toml ]; then\r\n echo -e \"\\nFailed to download release: ${DOWNLOAD_URL}\\n\"\r\n exit 1\r\nfi\r\nrm -rf .dockerignore Dockerfile .gitignore .github\/\r\ncargo build --release\r\nmv target\/release\/aoede .\r\ncargo clean\r\n\r\n\r\necho -e \"\\nAoede Successfully Installed!\"",
|
||||||
|
"container": "rust:1.74-slim",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Token",
|
||||||
|
"description": "Discord Bot Token",
|
||||||
|
"env_variable": "DISCORD_TOKEN",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Username",
|
||||||
|
"description": "Spotify Username",
|
||||||
|
"env_variable": "SPOTIFY_USERNAME",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Password",
|
||||||
|
"description": "Spotify Password",
|
||||||
|
"env_variable": "SPOTIFY_PASSWORD",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Discord User ID",
|
||||||
|
"description": "Discord user ID of the user you want Aoede to follow",
|
||||||
|
"env_variable": "DISCORD_USER_ID",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Autoplay",
|
||||||
|
"description": "Autoplay similar songs when your music ends \r\nValue : true\/false",
|
||||||
|
"env_variable": "SPOTIFY_BOT_AUTOPLAY",
|
||||||
|
"default_value": "false",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|in:true,false",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Version",
|
||||||
|
"description": "Specify a version, for example: \"v0.7.0\"\r\nFor the latest version, type \"latest\"",
|
||||||
|
"env_variable": "VERSION",
|
||||||
|
"default_value": "latest",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -2,17 +2,25 @@
|
|||||||
|
|
||||||
## From their [Github](https://github.com/TheBastionBot/Bastion)
|
## From their [Github](https://github.com/TheBastionBot/Bastion)
|
||||||
|
|
||||||
Give awesome perks to your Discord server!
|
Bastion is a multi-purpose Discord Bot that can help you automate most tasks in your server, from administration and moderation to keeping the members active through various incentives, games and other fun activities.
|
||||||
|
|
||||||
## Install notes
|
|
||||||
|
|
||||||
Due to rate limiting the console on the panel cannot keep up with the game console and the build will complete before the panel console may show it. Reloading the console will load it to the latest part of the log.
|
|
||||||
|
|
||||||
## Running the bot
|
## Running the bot
|
||||||
|
|
||||||
You need to enable both `Privileged Gateway Intents` for the bot to run.
|
You need to enable both `Privileged Gateway Intents` for the bot to run.
|
||||||
Enable this from `https://discord.com/developers/applications/<applicationid>/bot`
|
|
||||||
|
Invite link: `https://discord.com/oauth2/authorize?client_id=INSERT_APP_ID_HERE&scope=bot&permissions=8`
|
||||||
|
|
||||||
## Server Ports
|
## Server Ports
|
||||||
|
|
||||||
No Ports are required for the bastion bot.
|
|
||||||
|
| Port | default |
|
||||||
|
|-----------------------|---------|
|
||||||
|
| Bastion API Port | 8377 |
|
||||||
|
|
||||||
|
## Mongodb
|
||||||
|
|
||||||
|
Mongodb is automaticly running in the background. Leave Mongo URL to the default to use it. If you want to use a external mongodb server a connection string should look like: `mongodb+srv://<username>:<password>@<ip>/?retryWrites=true&w=majority`
|
||||||
|
|
||||||
|
## Startup cmd
|
||||||
|
By default this should be `npm start` but if you want to register your slash commands set it to `npm run commands` it will activate the slash commands on discord's side. Then the server will crash, change it back to `npm run` to start the bot back up and have slash commands enabled.
|
||||||
@@ -1,72 +1,122 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1"
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2020-06-20T13:11:43-04:00",
|
"exported_at": "2023-03-29T10:33:50+02:00",
|
||||||
"name": "Bastion",
|
"name": "Bastion",
|
||||||
"author": "parker@parkervcp.com",
|
"author": "parker@parkervcp.com",
|
||||||
"description": "Bastion is an all-in-one multipurpose Discord bot that can do a whole bunch of things and its features are expanding daily. Bastion does everything most people will ever need it to do. Check out some feature highlights below to get a peek into the vast feature list of Bastion. And if you think Bastion lacks some feature, please send a suggestion and we will add it to Bastion as soon as possible.",
|
"description": "Bastion is a multi-purpose Discord Bot that can help you automate most tasks in your server, from administration and moderation to keeping the members active through various incentives, games and other fun activities",
|
||||||
"image": "quay.io\/parkervcp\/pterodactyl-images:bot_bastion",
|
"features": null,
|
||||||
"startup": "\"rmv() { echo -e \"stopping nodejs\"; for i in $(pgrep node); do kill $i; done; echo -e \"stopping mongo\"; mongo --eval \\\"db.getSiblingDB('admin').shutdownServer()\\\" ; }; trap \\'echo -e \\\"ctrl-c caught\\\" && rmv\\'; mongod --fork --dbpath \/home\/container\/mongodb\/ --port 27017 --logpath \/home\/container\/mongod.log && until nc -z -v -w5 127.0.0.1 27017; do echo 'Waiting for mongodb connection...'; sleep 5; done && yarn start\"",
|
"docker_images": {
|
||||||
|
"Bastion": "ghcr.io\/parkervcp\/yolks:bot_bastion"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": "{{STARTUP_CMD}}",
|
||||||
"config": {
|
"config": {
|
||||||
"files": "{\r\n \"settings\/credentials.yaml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"token\": \"{{server.build.env.BOT_TOKEN}}\"\r\n }\r\n },\r\n \"settings\/configurations.yaml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"presence.status\": \"{{server.build.env.STATUS}}\",\r\n \"presence.activity.type\": \"{{server.build.env.ACTIVITY}}\",\r\n \"presence.activity.name\": \"{{server.build.env.PLAYING}}\",\r\n \"presence.activity.url\": \"{{server.build.env.STREAM_URL}}\"\r\n }\r\n }\r\n}",
|
"files": "{}",
|
||||||
"startup": "{\r\n \"done\": \"Systems Ready!\"\r\n}",
|
"startup": "{\r\n \"done\": \"Ready\"\r\n}",
|
||||||
"logs": "{}",
|
"logs": "{}",
|
||||||
"stop": "^C"
|
"stop": "^^C"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"installation": {
|
"installation": {
|
||||||
"script": "#!\/bin\/bash\r\n# Bastion Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n## Move to install folder\r\ncd \/mnt\/server\/\r\n\r\n## Clone repo\r\ngit clone -q --depth 1 https:\/\/github.com\/TheBastionBot\/Bastion.git .\/\r\n\r\n## Install node_modules\r\nyarn install --only=production\r\n\r\n## Move config files.\r\nmv settings\/credentials.example.yaml settings\/credentials.yaml\r\nmv settings\/configurations.example.yaml settings\/configurations.yaml\r\n\r\n## make folders for mongodb\r\nmkdir mongodb\/",
|
"script": "#!\/bin\/bash\r\n# Bastion Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n## Move to install folder\r\napt update\r\napt install -y build-essential libtool python3 git tar\r\n\r\n\r\nmkdir -p \/mnt\/server\/\r\ncd \/mnt\/server\/\r\n\r\nif [ -d \"\/mnt\/server\/mongodb\" ]\r\nthen\r\n cd \/mnt\/server\/\r\n echo \"backing up mongodb\"\r\n REINSTALL=true\r\n tar -czf mongodb_backup.tar.gz mongodb\/\r\n mv mongodb_backup.tar.gz \/tmp\r\nfi\r\n\r\ncd \/mnt\/server\r\nrm -rf * .git\/ .github\/ .env.example .eslintrc.yml .gitattributes .gitignore .npm\/\r\n\r\n\r\n## Clone repo\r\necho \"cloning Bastion bot\"\r\ngit clone -q --depth 1 https:\/\/github.com\/TheBastionBot\/Bastion.git .\/\r\n\r\necho \"updating npm\"\r\nnpm install -g npm@latest\r\necho \"npm install --no-package-lock\"\r\nnpm install --no-package-lock\r\necho \"npm run build\"\r\nnpm run build\r\n\r\n## Move config files.\r\nmv settings.example.yaml settings.yaml\r\nrm -rf bastion.cmd .env.example bastion.sh scrips\/\r\n\r\n\r\nmkdir -p mongodb\/\r\nif [ \"$REINSTALL\" == \"true\" ]\r\nthen\r\n cd \/mnt\/server\r\n echo \"reinstall\"\r\n mv \/tmp\/mongodb_backup.tar.gz \/mnt\/server\r\n tar xf mongodb_backup.tar.gz\r\n rm mongodb_backup.tar.gz\r\nelse\r\n echo \"fresh install\"\r\nfi\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
|
||||||
"container": "node:12-buster",
|
"container": "node:18-bullseye",
|
||||||
"entrypoint": "bash"
|
"entrypoint": "bash"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"variables": [
|
"variables": [
|
||||||
{
|
{
|
||||||
"name": "Bot Token",
|
"name": "Bot Token",
|
||||||
"description": "The Bot ID you get from https:\/\/discordapp.com\/developers\/applications\/",
|
"description": "The Bot Token you get from https:\/\/discordapp.com\/developers\/applications\/",
|
||||||
"env_variable": "BOT_TOKEN",
|
"env_variable": "BOT_TOKEN",
|
||||||
"default_value": "GETABOTTOKEN",
|
"default_value": "GETABOTTOKEN",
|
||||||
"user_viewable": 1,
|
"user_viewable": true,
|
||||||
"user_editable": 1,
|
"user_editable": true,
|
||||||
"rules": "required|string|max:64"
|
"rules": "required|string|max:80",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Bot Status",
|
"name": "Bot Client ID",
|
||||||
"description": "valid values are `online`, `idle`, `dnd` and `invisible`",
|
"description": "The Bot ID you get from https:\/\/discordapp.com\/developers\/applications\/",
|
||||||
"env_variable": "STATUS",
|
"env_variable": "BOT_ID",
|
||||||
"default_value": "online",
|
|
||||||
"user_viewable": 1,
|
|
||||||
"user_editable": 1,
|
|
||||||
"rules": "required|string|max:20"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Activity Type",
|
|
||||||
"description": "valid options are `PLAYING`, `LISTENING`, `WATCHING` and `STREAMING`",
|
|
||||||
"env_variable": "ACTIVITY",
|
|
||||||
"default_value": "PLAYING",
|
|
||||||
"user_viewable": 1,
|
|
||||||
"user_editable": 1,
|
|
||||||
"rules": "required|string|max:9"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "ACTIVITY",
|
|
||||||
"description": "What the bot is doing",
|
|
||||||
"env_variable": "PLAYING",
|
|
||||||
"default_value": "on a pterodactyl server",
|
|
||||||
"user_viewable": 1,
|
|
||||||
"user_editable": 1,
|
|
||||||
"rules": "required|string|max:64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Stream URL",
|
|
||||||
"description": "If the bot activity is set to `STREAMING`",
|
|
||||||
"env_variable": "STREAM_URL",
|
|
||||||
"default_value": "",
|
"default_value": "",
|
||||||
"user_viewable": 1,
|
"user_viewable": true,
|
||||||
"user_editable": 1,
|
"user_editable": true,
|
||||||
"rules": "nullable|string|max:64"
|
"rules": "required|string|max:32",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Mongo URL",
|
||||||
|
"description": "use `mongodb:\/\/127.0.0.1:27017\/bastion` for using the build in mongodb server",
|
||||||
|
"env_variable": "MONGO_URI",
|
||||||
|
"default_value": "mongodb:\/\/127.0.0.1:27017\/bastion",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Music Activity",
|
||||||
|
"description": "When enabled, Bastion updates the activity to the currently playing track",
|
||||||
|
"env_variable": "BASTION_MUSIC_ACTIVITY",
|
||||||
|
"default_value": "true",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|in:true,false",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Relay Direct Messages",
|
||||||
|
"description": "When enabled, Bastion will relay any direct messages it receives to the owner of the bot application \/ team.",
|
||||||
|
"env_variable": "BASTION_RELAY_DMS",
|
||||||
|
"default_value": "false",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|in:true,false",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Safe Mode",
|
||||||
|
"description": "When enabled, this disables usage of unsafe commands like `exec` and `eval`.",
|
||||||
|
"env_variable": "UNSAFE_MODE",
|
||||||
|
"default_value": "false",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|in:true,false",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Bastion API Port",
|
||||||
|
"description": "Port used for Bastion API Server",
|
||||||
|
"env_variable": "BASTION_API_PORT",
|
||||||
|
"default_value": "8377",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "required|string|max:10",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Bastion API Auth",
|
||||||
|
"description": "Auth for accessing the Bastion API Server.",
|
||||||
|
"env_variable": "BASTION_API_AUTH",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Startup cmd",
|
||||||
|
"description": "set to `npm start` if you just want to start the bot.\r\nset to `npm run commands` to activate the slash commands",
|
||||||
|
"env_variable": "STARTUP_CMD",
|
||||||
|
"default_value": "npm start",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|in:npm start,npm run commands",
|
||||||
|
"field_type": "text"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,117 +0,0 @@
|
|||||||
{
|
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
|
||||||
"meta": {
|
|
||||||
"version": "PTDL_v1",
|
|
||||||
"update_url": null
|
|
||||||
},
|
|
||||||
"exported_at": "2021-10-22T07:43:48-04: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.",
|
|
||||||
"features": null,
|
|
||||||
"images": [
|
|
||||||
"ghcr.io\/parkervcp\/yolks:nodejs_17",
|
|
||||||
"ghcr.io\/parkervcp\/yolks:nodejs_16",
|
|
||||||
"ghcr.io\/parkervcp\/yolks:nodejs_15",
|
|
||||||
"ghcr.io\/parkervcp\/yolks:nodejs_14",
|
|
||||||
"ghcr.io\/parkervcp\/yolks:nodejs_12"
|
|
||||||
],
|
|
||||||
"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 [[ ! -z ${UNNODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install; fi; \/usr\/local\/bin\/node \/home\/container\/{{BOT_JS_FILE}}",
|
|
||||||
"config": {
|
|
||||||
"files": "{}",
|
|
||||||
"startup": "{\r\n \"done\": \"change this part\"\r\n}",
|
|
||||||
"logs": "{}",
|
|
||||||
"stop": "^^C"
|
|
||||||
},
|
|
||||||
"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 [ \"$(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"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"variables": [
|
|
||||||
{
|
|
||||||
"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": "Install Branch",
|
|
||||||
"description": "The branch of the bot to install.",
|
|
||||||
"env_variable": "BRANCH",
|
|
||||||
"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|boolean"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Auto Update",
|
|
||||||
"description": "Pull the latest files on startup when using a GitHub repo.",
|
|
||||||
"env_variable": "AUTO_UPDATE",
|
|
||||||
"default_value": "0",
|
|
||||||
"user_viewable": true,
|
|
||||||
"user_editable": true,
|
|
||||||
"rules": "required|boolean"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Bot js file",
|
|
||||||
"description": "The file that starts the bot.",
|
|
||||||
"env_variable": "BOT_JS_FILE",
|
|
||||||
"default_value": "index.js",
|
|
||||||
"user_viewable": true,
|
|
||||||
"user_editable": true,
|
|
||||||
"rules": "required|string"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Additional Node packages",
|
|
||||||
"description": "Install additional node packages.\r\n\r\nUse spaces to separate.",
|
|
||||||
"env_variable": "NODE_PACKAGES",
|
|
||||||
"default_value": "",
|
|
||||||
"user_viewable": true,
|
|
||||||
"user_editable": true,
|
|
||||||
"rules": "nullable|string"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Git Username",
|
|
||||||
"description": "Username to auth with git.",
|
|
||||||
"env_variable": "USERNAME",
|
|
||||||
"default_value": "",
|
|
||||||
"user_viewable": true,
|
|
||||||
"user_editable": true,
|
|
||||||
"rules": "nullable|string"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Git Access Token",
|
|
||||||
"description": "Password to use with git.\r\n\r\nIt's best practice to use a Personal Access Token.\r\nhttps:\/\/github.com\/settings\/tokens\r\nhttps:\/\/gitlab.com\/-\/profile\/personal_access_tokens",
|
|
||||||
"env_variable": "ACCESS_TOKEN",
|
|
||||||
"default_value": "",
|
|
||||||
"user_viewable": true,
|
|
||||||
"user_editable": true,
|
|
||||||
"rules": "nullable|string"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Uninstall Node packages",
|
|
||||||
"description": "Uninstall node packages.\r\n\r\nUse spaces to separate.",
|
|
||||||
"env_variable": "UNNODE_PACKAGES",
|
|
||||||
"default_value": "",
|
|
||||||
"user_viewable": true,
|
|
||||||
"user_editable": true,
|
|
||||||
"rules": "nullable|string"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
# Dynamica
|
# Dynamica
|
||||||
|
|
||||||
### Their [Github](https://github.com/dynamicabot/dynamica)
|
## Their [Github](https://github.com/dynamicabot/dynamica-v2)
|
||||||
|
|
||||||
This is a discord bot for dynamically managing voice channels.
|
An easy-to-use dynamic voice channel bot.
|
||||||
|
|
||||||
|
## Port
|
||||||
|
You will manual have to change the web port in the src/main.ts on line 24.
|
||||||
@@ -1,29 +1,29 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1",
|
"version": "PTDL_v2",
|
||||||
"update_url": null
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2021-12-13T10:34:52+11:00",
|
"exported_at": "2023-08-18T17:01:43+02:00",
|
||||||
"name": "Dynamica",
|
"name": "Dynamica",
|
||||||
"author": "sebastian.pietschner@gmail.com",
|
"author": "sebastian.pietschner@gmail.com",
|
||||||
"description": "The dynamica discord bot",
|
"description": "An easy-to-use dynamic voice channel bot.",
|
||||||
"features": null,
|
"features": null,
|
||||||
"images": [
|
"docker_images": {
|
||||||
"ghcr.io\/parkervcp\/yolks:nodejs_16"
|
"Nodejs 18": "ghcr.io\/parkervcp\/yolks:nodejs_18"
|
||||||
],
|
},
|
||||||
"file_denylist": [],
|
"file_denylist": [],
|
||||||
"startup": "yarn deploy && yarn prisma migrate deploy && yarn start",
|
"startup": "npx prisma migrate deploy && yarn start",
|
||||||
"config": {
|
"config": {
|
||||||
"files": "{}",
|
"files": "{}",
|
||||||
"startup": "{\r\n \"done\": \"Ready! Logged in as \"\r\n}",
|
"startup": "{\r\n \"done\": \"Bot logged in as \"\r\n}",
|
||||||
"logs": "{}",
|
"logs": "{}",
|
||||||
"stop": "^C"
|
"stop": "^^C"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"installation": {
|
"installation": {
|
||||||
"script": "apt-get update\r\napt-get install openssl git -y -qq\r\ncd \/mnt\/server\r\nif [[ -d .git\/ ]]; then\r\n git pull\r\nelse\r\n git clone https:\/\/github.com\/dynamicabot\/dynamica.git .;\r\nfi;\r\nyarn install --frozen-lockfile",
|
"script": "#!\/bin\/bash\r\n\r\napt update\r\napt -y install tar curl jq git\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nGITHUB_PACKAGE=\"DynamicaBot\/Dynamica-V2\"\r\n\r\n# Find GitHub download URL for Muse for specified version\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 -r '.tarball_url')\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) | .tarball_url')\r\n else\r\n echo -e \"Could not find version \\\"${VERSION}\\\" of Muse. Defaulting to latest release...\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\r\n fi\r\nfi\r\n\r\ncurl -sSL -o dynamica.tar.gz ${DOWNLOAD_URL}\r\ntar xvf dynamica.tar.gz --strip-components=1\r\nrm dynamica.tar.gz\r\n\r\n#curl -sSL -o tsconfig.json https:\/\/pteropaste.com\/xqhjja443pbm\r\n\r\nyarn add tsup --dev\r\nyarn install --frozen-lockfile\r\n\r\nyarn generate\r\nyarn build\r\n\r\nrm -rf .github\/ .vscode\/ Dockerfile partial.Dockerfile entrypoint.sh dynamica-egg.json\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
|
||||||
"container": "node:lts-buster-slim",
|
"container": "node:18-bullseye-slim",
|
||||||
"entrypoint": "bash"
|
"entrypoint": "bash"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -35,7 +35,8 @@
|
|||||||
"default_value": "file:\/home\/container\/dynamica\/db.sqlite",
|
"default_value": "file:\/home\/container\/dynamica\/db.sqlite",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": false,
|
"user_editable": false,
|
||||||
"rules": "required|string"
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Token",
|
"name": "Token",
|
||||||
@@ -44,16 +45,58 @@
|
|||||||
"default_value": "",
|
"default_value": "",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string"
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Client ID",
|
"name": "Guild ID",
|
||||||
"description": "The client ID of your discord bot.",
|
"description": "Add only if using the bot in a single guild.",
|
||||||
"env_variable": "CLIENT_ID",
|
"env_variable": "GUILD_ID",
|
||||||
"default_value": "",
|
"default_value": "",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string|size:18"
|
"rules": "string|nullable",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sentry DSN",
|
||||||
|
"description": "The DSN for Sentry.",
|
||||||
|
"env_variable": "SENTRY_DSN",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "string|nullable",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "MQTT URL",
|
||||||
|
"description": "The URL for the MQTT broker.",
|
||||||
|
"env_variable": "MQTT_URL",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "string|nullable",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "MQTT Username",
|
||||||
|
"description": "The username for the MQTT broker.",
|
||||||
|
"env_variable": "MQTT_USER",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "string|nullable",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "MQTT Password",
|
||||||
|
"description": "The password for the MQTT broker.",
|
||||||
|
"env_variable": "MQTT_PASS",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "string|nullable",
|
||||||
|
"field_type": "text"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# Game Server Watcher
|
||||||
|
|
||||||
|
## From [Github](https://github.com/a-sync/game-server-watcher#readme)
|
||||||
|
A simple discord/telegram/slack bot that can be hosted on a free service to monitor your game servers and players in style. 😎
|
||||||
|
|
||||||
|
## Screenshots
|
||||||
|
<img src="https://user-images.githubusercontent.com/14183614/162092529-e1645b44-2650-4893-8123-7ba187b1f51c.png" height="280"> <img src="https://user-images.githubusercontent.com/14183614/162092488-f28bd60c-88bf-4b1e-a31e-d7dca51d8c28.png" height="280"> <img src="https://github.com/a-sync/game-server-watcher/assets/14183614/0461ad76-bb13-468c-a7b3-437d6a3cea63" height="280"> <img src="https://github.com/a-sync/game-server-watcher/assets/14183614/ee0ef0de-83bc-42ae-8f64-62f481f6ba8f" height="280">
|
||||||
|
|
||||||
|
## Running the bot
|
||||||
|
Refer to the wiki on how to acquire tokens for:
|
||||||
|
* [steam](https://github.com/a-sync/game-server-watcher/wiki/Steam-Web-API-key)
|
||||||
|
* [discord](https://github.com/a-sync/game-server-watcher/wiki/Discord-bot-token)
|
||||||
|
* [telegram](https://github.com/a-sync/game-server-watcher/wiki/Telegram-bot-token)
|
||||||
|
* [slack](https://github.com/a-sync/game-server-watcher/wiki/Slack-bot-token)
|
||||||
|
|
||||||
|
## Server Ports
|
||||||
|
GSW Control Panel requires one port for http traffic.
|
||||||
|
(It can be any port.)
|
||||||
|
|
||||||
|
| Port | default |
|
||||||
|
|---------|---------|
|
||||||
|
| Web | 8081 |
|
||||||
@@ -0,0 +1,122 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2023-12-06T09:05:57+00:00",
|
||||||
|
"name": "Game Server Watcher",
|
||||||
|
"author": "a-sync@devs.space",
|
||||||
|
"description": "A simple discord\/telegram\/slack bot that can be hosted on a free service to monitor your game servers and players in style. \ud83d\ude0e",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"Node.js 20": "ghcr.io\/parkervcp\/yolks:nodejs_20"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": "env PORT={{SERVER_PORT}} \/usr\/local\/bin\/node \/home\/container\/dist\/server.js",
|
||||||
|
"config": {
|
||||||
|
"files": "{}",
|
||||||
|
"startup": "{\r\n \"done\": \"starting loop...\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "^^C"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!\/bin\/bash\r\napt-get update && apt-get install ca-certificates git -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages\r\ncd \/mnt\/server\r\ngit config --global --add safe.directory \/mnt\/server\r\ngit clone https:\/\/github.com\/a-sync\/game-server-watcher.git . || git pull\r\nnpm install && npm update gamedig && npm run build\r\nnpm prune --omit=dev",
|
||||||
|
"container": "node:20-bullseye-slim",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "SECRET",
|
||||||
|
"description": "Admin secret",
|
||||||
|
"env_variable": "SECRET",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|min:8|max:255",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "DATA_PATH",
|
||||||
|
"description": "Writable folder for data storage",
|
||||||
|
"env_variable": "DATA_PATH",
|
||||||
|
"default_value": ".\/data\/",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|min:1|max:255",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "REFRESH_TIME_MINUTES",
|
||||||
|
"description": "Game server info refresh interval in minutes",
|
||||||
|
"env_variable": "REFRESH_TIME_MINUTES",
|
||||||
|
"default_value": "2",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|integer|min:1",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "DISCORD_BOT_TOKEN",
|
||||||
|
"description": "Discord bot token",
|
||||||
|
"env_variable": "DISCORD_BOT_TOKEN",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "TELEGRAM_BOT_TOKEN",
|
||||||
|
"description": "Telegram bot token",
|
||||||
|
"env_variable": "TELEGRAM_BOT_TOKEN",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "STEAM_WEB_API_KEY",
|
||||||
|
"description": "Steam web API key",
|
||||||
|
"env_variable": "STEAM_WEB_API_KEY",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Debug Mode",
|
||||||
|
"description": "Enable or disable debug mode.",
|
||||||
|
"env_variable": "DBG",
|
||||||
|
"default_value": "0",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|in:0,1",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "SLACK_BOT_TOKEN",
|
||||||
|
"description": "Slack bot token",
|
||||||
|
"env_variable": "SLACK_BOT_TOKEN",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "SLACK_APP_TOKEN",
|
||||||
|
"description": "Slack app token",
|
||||||
|
"env_variable": "SLACK_APP_TOKEN",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,16 +1,17 @@
|
|||||||
{
|
{
|
||||||
"_comment": "Pterodactyl JMusicBot Egg ~ parkervcp, Software-Noob, Proxymiity, and Red-Thirten ~ 2021-11-29",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1",
|
"version": "PTDL_v2",
|
||||||
"update_url": null
|
"update_url": null
|
||||||
},
|
},
|
||||||
|
"exported_at": "2023-09-20T21:17:10+02:00",
|
||||||
"name": "JMusicBot",
|
"name": "JMusicBot",
|
||||||
"author": "parker@parkervcp.com",
|
"author": "parker@parkervcp.com",
|
||||||
"description": "A Discord music bot that's easy to set up and run yourself!",
|
"description": "A Discord music bot that's easy to set up and run yourself!",
|
||||||
"features": null,
|
"features": null,
|
||||||
"images": [
|
"docker_images": {
|
||||||
"ghcr.io\/pterodactyl\/yolks:java_16"
|
"ghcr.io\/pterodactyl\/yolks:java_17": "ghcr.io\/pterodactyl\/yolks:java_17"
|
||||||
],
|
},
|
||||||
"file_denylist": [],
|
"file_denylist": [],
|
||||||
"startup": "java -Dnogui=true -jar JMusicBot.jar",
|
"startup": "java -Dnogui=true -jar JMusicBot.jar",
|
||||||
"config": {
|
"config": {
|
||||||
@@ -21,8 +22,8 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"installation": {
|
"installation": {
|
||||||
"script": "#!\/bin\/bash\r\n## this is a simple script to use the github API for release versions.\r\n## this requires the egg has a variable for GITHUB_PACKAGE and VERSION\r\n## this supports using oauth\/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.)\r\n## if you are getting hit with GitHub API limit issues then you need to have the user and token set.\r\n\r\napt update\r\napt install -y jq curl\r\n\r\nGITHUB_PACKAGE=\"jagrosh\/MusicBot\"\r\nCONFIG_LINK=\"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/jmusicbot\/config.txt\"\r\nPLAYLIST_LINK=\"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/jmusicbot\/example_playlist.txt\"\r\n\r\nif [ -z \"${GITHUB_USER}\" ] && [ -z \"${GITHUB_OAUTH_TOKEN}\" ] ; then\r\n echo -e \"No Github user set. Using anonymous 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 [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\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 config)\r\n else\r\n echo -e \"Defaulting to the latest release.\"\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\n## JMusicBot Setup\r\n[ ! -d \/mnt\/server ] && mkdir \/mnt\/server\r\ncd \/mnt\/server\r\necho -e \"\\nInstalling\/Updating JMusicBot...\\n\"\r\n\r\nif [ -f JMusicBot.jar ]; then\r\n echo -e \"Updating JMusicBot.jar to latest version...\"\r\n echo -e '\\t(Old version can be found at \"JMusicBot.jar-old\")'\r\n mv -f JMusicBot.jar JMusicBot.jar-old\r\nfi\r\necho -e \"Running: curl -sSLo JMusicBot.jar ${DOWNLOAD_LINK}\\n\"\r\ncurl -sSLo JMusicBot.jar ${DOWNLOAD_LINK}\r\n\r\nif [ -f config.txt ]; then\r\n echo -e \"Updating config.txt to latest version...\"\r\n echo -e '\\t(Old version can be found at \"config.txt-old\")'\r\n mv -f config.txt config.txt-old\r\nfi\r\necho -e \"Running: curl -sSLo config.txt ${CONFIG_LINK}\\n\"\r\ncurl -sSLo config.txt ${CONFIG_LINK}\r\n\r\n[ ! -d Playlists ] && mkdir Playlists\r\ncd Playlists\r\nif [ -f example_playlist.txt ]; then\r\n echo -e \"example_playlist.txt already exists. Skipping default download.\"\r\nelse\r\n echo -e \"example_playlist.txt not found. Downloading default example_playlist...\"\r\n echo -e \"Running: curl -sSLo example_playlist.txt ${PLAYLIST_LINK}\"\r\n curl -sSLo example_playlist.txt ${PLAYLIST_LINK}\r\nfi\r\n\r\necho -e \"\\nJMusicBot Successfully Installed!\"",
|
"script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y jq curl\r\n\r\nCONFIG_LINK=\"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/jmusicbot\/config.txt\"\r\nPLAYLIST_LINK=\"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/jmusicbot\/example_playlist.txt\"\r\n\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\/jagrosh\/MusicBot\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/jagrosh\/MusicBot\/releases\")\r\nMATCH=JMusicBot\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\n## JMusicBot Setup\r\n[ ! -d \/mnt\/server ] && mkdir \/mnt\/server\r\ncd \/mnt\/server\r\necho -e \"\\nInstalling\/Updating JMusicBot...\\n\"\r\n\r\nif [ -f JMusicBot.jar ]; then\r\n echo -e \"Updating JMusicBot.jar to latest version...\"\r\n echo -e '\\t(Old version can be found at \"JMusicBot.jar-old\")'\r\n mv -f JMusicBot.jar JMusicBot.jar-old\r\nfi\r\n\r\necho -e \"Running: curl -sSLo JMusicBot.jar ${DOWNLOAD_URL}\\n\"\r\ncurl -sSLo JMusicBot.jar ${DOWNLOAD_URL}\r\n\r\nif [ -f config.txt ]; then\r\n echo -e \"Updating config.txt to latest version...\"\r\n echo -e '\\t(Old version can be found at \"config.txt-old\")'\r\n mv -f config.txt config.txt-old\r\nfi\r\necho -e \"Running: curl -sSLo config.txt ${CONFIG_LINK}\\n\"\r\ncurl -sSLo config.txt ${CONFIG_LINK}\r\n\r\n[ ! -d Playlists ] && mkdir Playlists\r\ncd Playlists\r\nif [ -f example_playlist.txt ]; then\r\n echo -e \"example_playlist.txt already exists. Skipping default download.\"\r\nelse\r\n echo -e \"example_playlist.txt not found. Downloading default example_playlist...\"\r\n echo -e \"Running: curl -sSLo example_playlist.txt ${PLAYLIST_LINK}\"\r\n curl -sSLo example_playlist.txt ${PLAYLIST_LINK}\r\nfi\r\n\r\necho -e \"\\nJMusicBot Successfully Installed!\"",
|
||||||
"container": "debian:buster-slim",
|
"container": "ghcr.io\/parkervcp\/installers:debian",
|
||||||
"entrypoint": "\/bin\/bash"
|
"entrypoint": "\/bin\/bash"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -31,10 +32,11 @@
|
|||||||
"name": "[REQUIRED] Discord Bot Token",
|
"name": "[REQUIRED] Discord Bot Token",
|
||||||
"description": "The token for your Discord bot. Learn how to obtain a token and configure your bot application properly here: https:\/\/jmusicbot.com\/getting-a-bot-token\/",
|
"description": "The token for your Discord bot. Learn how to obtain a token and configure your bot application properly here: https:\/\/jmusicbot.com\/getting-a-bot-token\/",
|
||||||
"env_variable": "BOT_TOKEN",
|
"env_variable": "BOT_TOKEN",
|
||||||
"default_value": "You need to get a token",
|
"default_value": "",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string"
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "[REQUIRED] Bot Owner ID",
|
"name": "[REQUIRED] Bot Owner ID",
|
||||||
@@ -43,7 +45,8 @@
|
|||||||
"default_value": "Change This To Your Discord User ID",
|
"default_value": "Change This To Your Discord User ID",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|digits:18"
|
"rules": "required|digits_between:17,18",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Bot Prefix",
|
"name": "Bot Prefix",
|
||||||
@@ -52,7 +55,8 @@
|
|||||||
"default_value": "@mention",
|
"default_value": "@mention",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "nullable|string|max:20"
|
"rules": "nullable|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Bot Alternate Prefix",
|
"name": "Bot Alternate Prefix",
|
||||||
@@ -61,7 +65,8 @@
|
|||||||
"default_value": "NONE",
|
"default_value": "NONE",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string|max:20"
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Bot Default Game",
|
"name": "Bot Default Game",
|
||||||
@@ -70,7 +75,8 @@
|
|||||||
"default_value": "DEFAULT",
|
"default_value": "DEFAULT",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "nullable|string|max:20"
|
"rules": "nullable|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Bot Default Status",
|
"name": "Bot Default Status",
|
||||||
@@ -79,7 +85,8 @@
|
|||||||
"default_value": "ONLINE",
|
"default_value": "ONLINE",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string|in:ONLINE,IDLE,DND,INVISIBLE"
|
"rules": "required|string|in:ONLINE,IDLE,DND,INVISIBLE",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Bot Show Song in Status",
|
"name": "Bot Show Song in Status",
|
||||||
@@ -88,7 +95,8 @@
|
|||||||
"default_value": "false",
|
"default_value": "false",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string|in:true,false"
|
"rules": "required|string|in:true,false",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Bot Show Images for \"Now Playing\"",
|
"name": "Bot Show Images for \"Now Playing\"",
|
||||||
@@ -97,7 +105,8 @@
|
|||||||
"default_value": "false",
|
"default_value": "false",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string|in:true,false"
|
"rules": "required|string|in:true,false",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Bot Stay In Channel",
|
"name": "Bot Stay In Channel",
|
||||||
@@ -106,7 +115,8 @@
|
|||||||
"default_value": "false",
|
"default_value": "false",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string|in:true,false"
|
"rules": "required|string|in:true,false",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Bot Alone Time Until Disconnect",
|
"name": "Bot Alone Time Until Disconnect",
|
||||||
@@ -115,7 +125,8 @@
|
|||||||
"default_value": "0",
|
"default_value": "0",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|integer"
|
"rules": "required|integer",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Bot Max Song Length",
|
"name": "Bot Max Song Length",
|
||||||
@@ -124,7 +135,8 @@
|
|||||||
"default_value": "0",
|
"default_value": "0",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|integer"
|
"rules": "required|integer",
|
||||||
|
"field_type": "text"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
# 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.
|
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
# Muse
|
||||||
|
|
||||||
|
### Authors / Contributors
|
||||||
|
<!-- prettier-ignore-start -->
|
||||||
|
<!-- markdownlint-disable -->
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="https://github.com/TubaApollo">
|
||||||
|
<img src="https://avatars.githubusercontent.com/u/86665265" width="50px;" alt=""/><br /><sub><b>TubaApollo</b></sub>
|
||||||
|
</a>
|
||||||
|
<br />
|
||||||
|
<a href="https://github.com/parkervcp/eggs/commits?author=TubaApollo" title="Codes">💻</a>
|
||||||
|
<a href="https://github.com/parkervcp/eggs/commits?author=TubaApollo" title="Maintains">🔨</a>
|
||||||
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<a href="https://github.com/lilkingjr1">
|
||||||
|
<img src="https://avatars.githubusercontent.com/u/4533989" width="50px;" alt=""/><br /><sub><b>Red-Thirten</b></sub>
|
||||||
|
</a>
|
||||||
|
<br />
|
||||||
|
<a href="https://github.com/parkervcp/eggs/commits?author=lilkingjr1" title="Codes">💻</a>
|
||||||
|
<a href="https://github.com/parkervcp/eggs/commits?author=lilkingjr1" title="Contributor">💡</a>
|
||||||
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<a href="https://github.com/QuintenQVD0">
|
||||||
|
<img src="https://avatars.githubusercontent.com/u/67589015" width="50px;" alt=""/><br /><sub><b>QuintenQVD0</b></sub>
|
||||||
|
</a>
|
||||||
|
<br />
|
||||||
|
<a href="https://github.com/parkervcp/eggs/commits?author=QuintenQVD0" title="Codes">💻</a>
|
||||||
|
<a href="https://github.com/parkervcp/eggs/commits?author=QuintenQVD0" title="Contributor">💡</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<!-- markdownlint-enable -->
|
||||||
|
<!-- prettier-ignore-end -->
|
||||||
|
|
||||||
|
## Their [Github](https://github.com/codetheweb/muse)
|
||||||
|
|
||||||
|
Muse is a highly-opinionated midwestern self-hosted Discord music bot that doesn't suck.
|
||||||
|
|
||||||
|
## Server Ports
|
||||||
|
|
||||||
|
There are no ports required for the Muse bot
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2023-09-20T20:25:51+02:00",
|
||||||
|
"name": "Muse",
|
||||||
|
"author": "hello@apollo.moe",
|
||||||
|
"description": "\ud83c\udfa7 a self-hosted midwestern Discord music bot that doesn't suck",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"ghcr.io\/parkervcp\/yolks:nodejs_16": "ghcr.io\/parkervcp\/yolks:nodejs_16"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": "npm start",
|
||||||
|
"config": {
|
||||||
|
"files": "{\r\n \".env\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"DISCORD_TOKEN\": \"DISCORD_TOKEN={{env.discord_token}}\",\r\n \"DATA_DIR\": \"DATA_DIR={{env.data_dir}}\",\r\n \"YOUTUBE_API_KEY\": \"YOUTUBE_API_KEY={{env.api_key}}\",\r\n \"SPOTIFY_CLIENT_ID\": \"SPOTIFY_CLIENT_ID={{env.client_id}}\",\r\n \"SPOTIFY_CLIENT_SECRET\": \"SPOTIFY_CLIENT_SECRET={{env.client_secret}}\"\r\n }\r\n }\r\n}",
|
||||||
|
"startup": "{\r\n \"done\": \"Running version \"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "^^C"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "## Credits: Red-Thirten (https:\/\/github.com\/lilkingjr1) for providing most of the installation script\r\napt-get update\r\napt-get install git curl jq -y -qq\r\n\r\nGITHUB_PACKAGE=\"codetheweb\/muse\"\r\n\r\n# Find GitHub download URL for Muse for specified version\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 -r '.tarball_url')\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) | .tarball_url')\r\n else\r\n echo -e \"Could not find version \\\"${VERSION}\\\" of Muse. Defaulting to latest release...\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\r\n fi\r\nfi\r\n\r\n# Download Muse from GitHub & Extract\r\ncd \/mnt\/server\r\necho -e \"Downloading Muse from GitHub...\"\r\ncurl -L ${DOWNLOAD_URL} -o muse.tar.gz\r\necho -e \"Extracting Muse from tarball...\"\r\ntar -xvzf muse.tar.gz --strip-components=1\r\nrm muse.tar.gz\r\n\r\n# Verify and clean up Muse installation\r\nif [ ! -f .env.example ]; then\r\n echo -e \"\\nFailed to download release: ${DOWNLOAD_URL}\\n\"\r\n exit 1\r\nfi\r\ncp .env.example .env\r\nrm -rf .dockerignore Dockerfile .gitignore .github\/\r\nyarn install --prod #--frozen-lockfile\r\n#sed -i 's\/of filterWrapper[)]\/of filterWrapper|| [])\/g' \/mnt\/server\/node_modules\/ytsr\/lib\/utils.js\r\n\r\necho -e \"\\nMuse Successfully Installed!\"",
|
||||||
|
"container": "node:lts-bullseye-slim",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "TOKEN",
|
||||||
|
"description": "Discord Bot Token",
|
||||||
|
"env_variable": "discord_token",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Data directory",
|
||||||
|
"description": "Default: .\/data",
|
||||||
|
"env_variable": "data_dir",
|
||||||
|
"default_value": ".\/data",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "YouTube API Key",
|
||||||
|
"description": "You can get it here: https:\/\/console.developers.google.com\/",
|
||||||
|
"env_variable": "api_key",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Spotify Client ID",
|
||||||
|
"description": "You can get it here: https:\/\/developer.spotify.com\/dashboard\/applications",
|
||||||
|
"env_variable": "client_id",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Spotify Client Secret",
|
||||||
|
"description": "You can get it here: https:\/\/developer.spotify.com\/dashboard\/applications",
|
||||||
|
"env_variable": "client_secret",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Version",
|
||||||
|
"description": "Specify a version, for example: \"v2.4.1\"\r\nFor the latest version, type \"latest\"",
|
||||||
|
"env_variable": "VERSION",
|
||||||
|
"default_value": "latest",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,25 +1,30 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1"
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2020-04-03T12:50:58-04:00",
|
"exported_at": "2023-02-19T13:09:14+01:00",
|
||||||
"name": "parkertron",
|
"name": "parkertron",
|
||||||
"author": "parker@parkervcp.com",
|
"author": "parker@parkervcp.com",
|
||||||
"description": "The stupid chatbot parkertron by Parkervcp.\r\n\r\nhttps:\/\/github.com\/parkervcp\/parkertron",
|
"description": "The stupid chatbot parkertron by Parkervcp.\r\n\r\nhttps:\/\/github.com\/parkervcp\/parkertron",
|
||||||
"image": "quay.io\/parkervcp\/pterodactyl-images:bot_parkertron",
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"ghcr.io\/parkervcp\/yolks:bot_parkertron": "ghcr.io\/parkervcp\/yolks:bot_parkertron"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
"startup": ".\/parkertron",
|
"startup": ".\/parkertron",
|
||||||
"config": {
|
"config": {
|
||||||
"files": "{}",
|
"files": "{}",
|
||||||
"startup": "{\r\n \"done\": \"Bot is now running\"\r\n}",
|
"startup": "{\r\n \"done\": \"Bot is now running\"\r\n}",
|
||||||
"logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}",
|
"logs": "{}",
|
||||||
"stop": "shutdown"
|
"stop": "shutdown"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"installation": {
|
"installation": {
|
||||||
"script": "#!\/bin\/ash\r\n# parkertron Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nexport GOPATH=$HOME\/go\r\nexport PATH=$GOROOT\/bin:$GOPATH\/bin:$PATH\r\n\r\ncd\r\n\r\napk add --no-cache --update git curl lua-stdlib lua musl-dev g++ libc-dev tesseract-ocr tesseract-ocr-dev\r\n\r\necho \"pulling the parkertron pterodactyl branch\"\r\n\r\ngit clone https:\/\/github.com\/parkervcp\/parkertron.git\r\n\r\ncd parkertron\/\r\n\r\ngo mod download\r\n\r\necho \"building parkertron\"\r\n\r\ngo build \r\n\r\necho \"build complete copying parkertron and example configs over\"\r\n\r\ncp parkertron \/mnt\/server\/\r\n\r\nif [ -d \/mnt\/server\/configs ]; then\r\n echo \"Files exist already\"\r\nelse\r\n cp -r \/root\/parkertron\/configs\/ \/mnt\/server\/\r\nfi\r\n\r\necho \"Install complete. If you watched this. Congrats.\"",
|
"script": "#!\/bin\/bash\r\n# parkertron Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nexport GOPATH=$HOME\/go\r\nexport PATH=$GOROOT\/bin:$GOPATH\/bin:$PATH\r\n\r\ncd\r\n\r\napt update\r\n\r\napt install -y tesseract-ocr tesseract-ocr-eng libtesseract-dev\r\n\r\necho \"pulling the parkertron git repo\"\r\n\r\ngit clone https:\/\/github.com\/parkervcp\/parkertron.git\r\n\r\ncd parkertron\/\r\n\r\necho \"building parkertron\"\r\n\r\ngo build \r\n\r\necho \"build complete copying parkertron and example configs over\"\r\n\r\ncp parkertron \/mnt\/server\/\r\n\r\nif [ -d \/mnt\/server\/configs ]; then\r\n echo \"Files exist already\"\r\nelse\r\n cp -r \/root\/parkertron\/configs\/ \/mnt\/server\/\r\nfi\r\n\r\necho \"Install complete. If you watched this. Congrats.\"",
|
||||||
"container": "golang:1.14-alpine",
|
"container": "golang:1.19-bullseye",
|
||||||
"entrypoint": "ash"
|
"entrypoint": "bash"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"variables": []
|
"variables": []
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1",
|
"version": "PTDL_v2",
|
||||||
"update_url": null
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2021-08-04T04:19:56+03:00",
|
"exported_at": "2023-08-05T10:50:21+02:00",
|
||||||
"name": "Red",
|
"name": "Red",
|
||||||
"author": "parker@parkervcp.com",
|
"author": "parker@parkervcp.com",
|
||||||
"description": "A multifunction Discord bot \r\n\r\nhttps:\/\/github.com\/Cog-Creators\/Red-DiscordBot",
|
"description": "A multifunction Discord bot \r\n\r\nhttps:\/\/github.com\/Cog-Creators\/Red-DiscordBot",
|
||||||
"features": null,
|
"features": null,
|
||||||
"images": [
|
"docker_images": {
|
||||||
"quay.io\/parkervcp\/pterodactyl-images:bot_red"
|
"ghcr.io\/parkervcp\/yolks:bot_red": "ghcr.io\/parkervcp\/yolks:bot_red"
|
||||||
],
|
},
|
||||||
"file_denylist": [],
|
"file_denylist": [],
|
||||||
"startup": "PATH=$PATH:\/home\/container\/.local\/bin redbot pterodactyl --token {{TOKEN}} --prefix {{PREFIX}}",
|
"startup": "PATH=$PATH:\/home\/container\/.local\/bin redbot pterodactyl --token {{TOKEN}} --prefix {{PREFIX}}",
|
||||||
"config": {
|
"config": {
|
||||||
@@ -22,8 +22,8 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"installation": {
|
"installation": {
|
||||||
"script": "#!\/bin\/bash\r\n# red-discordbot install script\r\n\r\n## install deps\r\nmkdir -p \/usr\/share\/man\/man1\r\napt update\r\napt -y install git ca-certificates dnsutils iproute2 make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libgdbm-dev uuid-dev git openjdk-11-jre\r\n\r\n## config folder layouts\r\necho -e \"generating config folder layout\"\r\nmkdir -p \/mnt\/server\/.config\/{Red-DiscordBot,share}\/ \/mnt\/server\/.local\/share\/Red-DiscordBot\/data\/pterodactyl\/\r\ncd \/mnt\/server\/\r\nln -s .local\/share\/Red-DiscordBot\/data\/pterodactyl\/ .\/configs\r\n\r\n## install red\r\necho -e \"add container user to install\"\r\nln -s \/mnt\/server\/ \/home\/container\r\nuseradd -m -d \/home\/container container\r\nchown -R container \/mnt\/server\/\r\necho -e \"install red locally as user\"\r\nsu - container -c 'pip install -U Red-DiscordBot'\r\n\r\n## ensure the config is in place if it doesn't exist\r\nif [ ! -f \/mnt\/server\/.config\/Red-DiscordBot\/config.json ]; then\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/redbot\/config.json -o \/mnt\/server\/.config\/Red-DiscordBot\/config.json\r\nfi\r\n\r\necho -e \"install finished\"",
|
"script": "#!\/bin\/bash\r\n# red-discordbot install script\r\n\r\n## install deps\r\nmkdir -p \/usr\/share\/man\/man1\r\napt update\r\napt -y install git ca-certificates dnsutils iproute2 make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libgdbm-dev uuid-dev git openjdk-17-jre-headless\r\n\r\n## config folder layouts\r\necho -e \"generating config folder layout\"\r\nmkdir -p \/mnt\/server\/.config\/{Red-DiscordBot,share}\/ \/mnt\/server\/.local\/share\/Red-DiscordBot\/data\/pterodactyl\/\r\ncd \/mnt\/server\/\r\nln -s .local\/share\/Red-DiscordBot\/data\/pterodactyl\/ .\/configs\r\n\r\n## install red\r\necho -e \"add container user to install\"\r\nln -s \/mnt\/server\/ \/home\/container\r\nuseradd -m -d \/home\/container container\r\nchown -R container \/mnt\/server\/\r\necho -e \"install red locally as user\"\r\npip install --upgrade pip\r\nsu - container -c 'pip install -U pip wheel'\r\nsu - container -c 'pip install -U Red-DiscordBot'\r\n\r\n## ensure the config is in place if it doesn't exist\r\nif [ ! -f \/mnt\/server\/.config\/Red-DiscordBot\/config.json ]; then\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/redbot\/config.json -o \/mnt\/server\/.config\/Red-DiscordBot\/config.json\r\nfi\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Installation completed\"\r\necho \"-------------------------------------------------------\"",
|
||||||
"container": "python:3.8-slim",
|
"container": "python:3.11-slim",
|
||||||
"entrypoint": "bash"
|
"entrypoint": "bash"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -35,7 +35,8 @@
|
|||||||
"default_value": "GET_YOUR_OWN",
|
"default_value": "GET_YOUR_OWN",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string"
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Command Prefix",
|
"name": "Command Prefix",
|
||||||
@@ -44,7 +45,18 @@
|
|||||||
"default_value": ".",
|
"default_value": ".",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string"
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Owner",
|
||||||
|
"description": "Owner of the Bot to use special commands",
|
||||||
|
"env_variable": "OWNER",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:30",
|
||||||
|
"field_type": "text"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
# Ree6
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
## Authors / Contributors
|
||||||
|
|
||||||
|
<!-- prettier-ignore-start -->
|
||||||
|
<!-- markdownlint-disable -->
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="https://github.com/dxssucuk">
|
||||||
|
<img src="https://avatars.githubusercontent.com/u/53257574" width="50px;" alt=""/><br /><sub><b>Presti</b></sub>
|
||||||
|
</a>
|
||||||
|
<br />
|
||||||
|
<a href="https://github.com/Ree6-Applications/Ree6/commits?author=dxssucuk" title="Codes">💻</a>
|
||||||
|
<a href="https://github.com/Ree6-Applications/Ree6/commits?author=dxssucuk" title="Original Bot Creator">🤖</a>
|
||||||
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<a href="https://github.com/parkervcp">
|
||||||
|
<img src="https://avatars.githubusercontent.com/u/1207679" width="50px;" alt=""/><br /><sub><b>parkervcp</b></sub>
|
||||||
|
</a>
|
||||||
|
<br />
|
||||||
|
<a href="https://github.com/parkervcp/eggs/commits?author=parkervcp" title="Codes">💻</a>
|
||||||
|
<a href="https://github.com/parkervcp/eggs/commits?author=parkervcp" title="Original Egg Creator">🥚</a>
|
||||||
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<a href="https://github.com/QuintenQVD0">
|
||||||
|
<img src="https://avatars.githubusercontent.com/u/67589015" width="50px;" alt=""/><br /><sub><b>QuintenQVD0</b></sub>
|
||||||
|
</a>
|
||||||
|
<br />
|
||||||
|
<a href="https://github.com/parkervcp/eggs/commits?author=QuintenQVD0" title="Codes">💻</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<!-- markdownlint-enable -->
|
||||||
|
<!-- prettier-ignore-end -->
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
## Bot Description & Features
|
||||||
|
|
||||||
|
From the developer's [Github](https://github.com/Ree6-Applications/Ree6):
|
||||||
|
> Ree6 is an all-in-one Discord Bot maintained by Presti, which started as an alternative of Mee6 to provide a lot of features that are hidden behind a paywall or subscription.
|
||||||
|
|
||||||
|
- Contains almost every feature Mee6 has.
|
||||||
|
- Has a open Source Webinterface.
|
||||||
|
- Provides advanced Audit-Logging.
|
||||||
|
- Has built in post notifications (Twitter, Instagram, YouTube, Reddit and Twitch).
|
||||||
|
- Built-in simple Ticket System.
|
||||||
|
- And more!
|
||||||
|
___
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
- You will need to modify the config.yml to even start the bot.
|
||||||
|
|
||||||
|
___
|
||||||
|
|
||||||
|
## Server Ports
|
||||||
|
|
||||||
|
There are no ports required for Ree6.
|
||||||
|
___
|
||||||
|
|
||||||
|
## Updating
|
||||||
|
|
||||||
|
Re-Installing the server via the panel will do the following:
|
||||||
|
|
||||||
|
1. Update the bot to the latest version.
|
||||||
|
|
||||||
|
|
||||||
|
## API keys
|
||||||
|
This bot uses a lot of api keys. It will print some errors to the console if you don't have some filled in but the bot should still function as normal with the api keys you entered.
|
||||||
@@ -0,0 +1,128 @@
|
|||||||
|
# ################################
|
||||||
|
# # #
|
||||||
|
# # Ree6 Config File #
|
||||||
|
# # by Presti #
|
||||||
|
# # #
|
||||||
|
# ################################
|
||||||
|
#
|
||||||
|
|
||||||
|
# Do not change this!
|
||||||
|
config:
|
||||||
|
version: 3.0.0
|
||||||
|
creation: 1686731674683
|
||||||
|
|
||||||
|
# HikariCP Configuration
|
||||||
|
hikari:
|
||||||
|
|
||||||
|
# SQL Configuration
|
||||||
|
sql:
|
||||||
|
user: root
|
||||||
|
db: root
|
||||||
|
pw: yourpw
|
||||||
|
host: localhost
|
||||||
|
port: 3306
|
||||||
|
|
||||||
|
# Misc Configuration
|
||||||
|
misc:
|
||||||
|
storage: sqlite # Possible entries: sqlite, mariadb, postgresql, h2, h2-server
|
||||||
|
storageFile: storage/Ree6.db
|
||||||
|
createEmbeddedServer: false # Should an instance of an embedded Server be created? Only used for H2-Server.
|
||||||
|
poolSize: 10
|
||||||
|
|
||||||
|
# Discord Application and overall Bot Configuration, used for OAuth, Bot Authentication and customization.
|
||||||
|
bot:
|
||||||
|
tokens:
|
||||||
|
release: ReleaseTokenhere # Token used when set to release build.
|
||||||
|
beta: BetaTokenhere # Token used when set to beta build.
|
||||||
|
dev: DevTokenhere # Token used when set to dev build.
|
||||||
|
|
||||||
|
# Configuration for the Bot itself.
|
||||||
|
misc:
|
||||||
|
status: ree6.de | %guilds% Servers. (%shard%) # The Status of the Bot.
|
||||||
|
feedbackChannelId: 0 # The Channel used for Feedback.
|
||||||
|
ownerId: <YOUR DISCORD ID> # The ID of the Bot Owner. Change this to yours!
|
||||||
|
predefineInformation: | # Predefined Information for the AI.
|
||||||
|
You are Ree6 a Discord bot.
|
||||||
|
invite: https://invite.ree6.de # The Invite Link of the Bot.
|
||||||
|
support: https://support.ree6.de # The Support Server Link of the Bot.
|
||||||
|
github: https://github.ree6.de # The GitHub Link of the Bot.
|
||||||
|
website: https://ree6.de # The Website Link of the Bot.
|
||||||
|
webinterface: https://cp.ree6.de # The Webinterface Link of the Bot.
|
||||||
|
recording: https://cp.ree6.de/external/recording # The Recording Link of the Bot.
|
||||||
|
twitchAuth: https://cp.ree6.de/external/twitch # The Twitch Authentication Link of the Bot.
|
||||||
|
advertisement: powered by Tube-hosting # The Advertisement in Embed Footers and the rest.
|
||||||
|
name: Ree6 # The Name of the Bot.
|
||||||
|
shards: 1 # The shard amount of the Bot. Check out https://anidiots.guide/understanding/sharding/#sharding for more information.
|
||||||
|
|
||||||
|
# Customize the active modules in Ree6.
|
||||||
|
modules:
|
||||||
|
moderation: true # Enable the moderation module.
|
||||||
|
music: true # Enable the music module.
|
||||||
|
fun: true # Enable the fun commands.
|
||||||
|
community: true # Enable the community commands.
|
||||||
|
economy: true # Enable the economy commands.
|
||||||
|
level: true # Enable the level module.
|
||||||
|
nsfw: true # Enable the nsfw module.
|
||||||
|
info: true # Enable the info commands.
|
||||||
|
hidden: true # Enable the hidden commands.
|
||||||
|
logging: true # Enable the logging module.
|
||||||
|
notifier: true # Enable the notifier module.
|
||||||
|
streamtools: true # Enable the Stream-tools module.
|
||||||
|
temporalvoice: true # Enable the Temporal-voice module.
|
||||||
|
tickets: true # Enable the Tickets module.
|
||||||
|
suggestions: true # Enable the suggestions module.
|
||||||
|
customcommands: true # Enable the custom Commands module.
|
||||||
|
customevents: true # Enable the custom Events module.
|
||||||
|
ai: true # Enable the AI module.
|
||||||
|
addons: false # Enable the Addons module.
|
||||||
|
news: true # Enable the news command/module.
|
||||||
|
games: true # Enable the Games module.
|
||||||
|
reactionroles: true # Enable the reaction-roles module.
|
||||||
|
slashcommands: true # Enable the slash-commands support.
|
||||||
|
messagecommands: true # Enable the message-commands support.
|
||||||
|
|
||||||
|
# Heartbeat Configuration, for status reporting
|
||||||
|
heartbeat:
|
||||||
|
url: none # The URL to the Heartbeat-Server
|
||||||
|
interval: 60
|
||||||
|
|
||||||
|
dagpi:
|
||||||
|
apitoken: DAGPI.xyz API-Token # Your Dagpi.xyz API-Token, for tweet image generation!
|
||||||
|
|
||||||
|
amari:
|
||||||
|
apitoken: Amari API-Token # Your Amari API-Token, for Amari Level imports!
|
||||||
|
|
||||||
|
openai:
|
||||||
|
apiToken: OpenAI API-Token # Your OpenAI API-Token, for ChatGPT!
|
||||||
|
apiUrl: https://api.openai.com/v1/chat/completions # The URL to the OpenAI API.
|
||||||
|
model: gpt-3.5-turbo-0301 # The Model used for the OpenAI API.
|
||||||
|
|
||||||
|
sentry:
|
||||||
|
dsn: yourSentryDSNHere # Your Sentry DSN, for error reporting!
|
||||||
|
|
||||||
|
# Spotify Application Configuration, used to parse Spotify Tracks/Playlists to YouTube search queries.
|
||||||
|
spotify:
|
||||||
|
client:
|
||||||
|
id: yourspotifyclientid
|
||||||
|
secret: yourspotifyclientsecret
|
||||||
|
|
||||||
|
# Twitch Application Configuration, used for the StreamTools and Twitch Notifications.
|
||||||
|
twitch:
|
||||||
|
client:
|
||||||
|
id: yourtwitchclientidhere
|
||||||
|
secret: yourtwitchclientsecrethere
|
||||||
|
|
||||||
|
# Twitter Application Configuration, used for the Twitter Notifications.
|
||||||
|
twitter:
|
||||||
|
bearer: yourTwitterBearerToken
|
||||||
|
|
||||||
|
# Reddit Application Configuration, used for the Reddit Notification.
|
||||||
|
reddit:
|
||||||
|
client:
|
||||||
|
id: yourredditclientid
|
||||||
|
secret: yourredditclientsecret
|
||||||
|
|
||||||
|
# Instagram Application Configuration, used for the Instagram Notification.
|
||||||
|
instagram:
|
||||||
|
username: yourInstagramUsername
|
||||||
|
password: yourInstagramPassword
|
||||||
@@ -0,0 +1,422 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2023-06-14T13:03:27+02:00",
|
||||||
|
"name": "Ree6",
|
||||||
|
"author": "presti@presti.me",
|
||||||
|
"description": "All-in-one, open source and 100% free Discord Bot!",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"Java_17": "ghcr.io\/pterodactyl\/yolks:java_17"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": "java -Dnogui=true -jar Ree6.jar",
|
||||||
|
"config": {
|
||||||
|
"files": "{\r\n \"config.yml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"hikari.sql.user\": \"{{server.build.env.DATABASE_USER}}\",\r\n \"hikari.sql.db\": \"{{server.build.env.DATABASE_DB}}\",\r\n \"hikari.sql.pw\": \"{{server.build.env.DATABASE_PW}}\",\r\n \"hikari.sql.host\": \"{{server.build.env.DATABASE_HOST}}\",\r\n \"hikari.sql.port\": \"{{server.build.env.DATABASE_PORT}}\",\r\n \"hikari.misc.storage\": \"{{server.build.env.DATABASE_TYP}}\",\r\n \"hikari.misc.storageFile\": \"{{server.build.env.DATABASE_FILE}}\",\r\n \"hikari.misc.poolSize\": \"{{server.build.env.DATABASE_POOL}}\",\r\n \"hikari.misc.createEmbeddedServer\": \"{{server.build.env.DATABASE_EMBEDDED}}\",\r\n \"heartbeat.url\": \"{{server.build.env.HEARTBEAT_URL}}\",\r\n \"heartbeat.interval\": \"{{server.build.env.HEARTBEAT_INTERVAL}}\",\r\n \"dagpi.apitoken\": \"{{server.build.env.DAGPI_TOKEN}}\",\r\n \"amari.apitoken\": \"{{server.build.env.AMARI_TOKEN}}\",\r\n \"sentry.dsn\": \"{{server.build.env.SENTRY_DSN}}\",\r\n \"spotify.client.id\": \"{{server.build.env.SPOTIFY_CLIENT_ID}}\",\r\n \"spotify.client.secret\": \"{{server.build.env.SPOTIFY_CLIENT_SECRET}}\",\r\n \"twitch.client.id\": \"{{server.build.env.TWITCH_CLIENT_ID}}\",\r\n \"twitch.client.secret\": \"{{server.build.env.TWITCH_CLIENT_SECRET}}\",\r\n \"twitter.consumer.key\": \"{{server.build.env.TWITTER_CONSUMER_ID}}\",\r\n \"twitter.consumer.secret\": \"{{server.build.env.TWITTER_CONSUMER_SECRET}}\",\r\n \"twitter.access.key\": \"{{server.build.env.TWITTER_ACCESS_ID}}\",\r\n \"twitter.access.secret\": \"{{server.build.env.TWITTER_ACCESS_SECRET}}\",\r\n \"reddit.client.id\": \"{{server.build.env.REDDIT_CLIENT_ID}}\",\r\n \"reddit.client.secret\": \"{{server.build.env.REDDIT_CLIENT_SECRET}}\",\r\n \"instagram.username\": \"{{server.build.env.INSTAGRAM_USERNAME}}\",\r\n \"instagram.password\": \"{{server.build.env.INSTAGRAM_PASSWORD}}\",\r\n \"bot.tokens.release\": \"{{server.build.env.BOT_TOKEN}}\",\r\n \"openai.apiToken\": \"{{server.build.env.AI_TOKEN}}\",\r\n \"openai.apiUrl\": \"{{server.build.env.AI_URL}}\",\r\n \"openai.model\": \"{{server.build.env.AI_MODEL}}\",\r\n \"bot.misc.status\": \"{{server.build.env.MISC_STATUS}}\",\r\n \"bot.misc.feedbackChannelId\": \"{{server.build.env.MISC_FEEDBACK}}\",\r\n \"bot.misc.ownerId\": \"{{server.build.env.MISC_OWNER}}\",\r\n \"bot.misc.predefineInformation\": \"{{server.build.env.MISC_PREDEF}}\",\r\n \"bot.misc.invite\": \"{{server.build.env.MISC_INVITE}}\",\r\n \"bot.misc.support\": \"{{server.build.env.MISC_SUPPORT}}\",\r\n \"bot.misc.website\": \"{{server.build.env.MISC_WEB}}\",\r\n \"bot.misc.webinterface\": \"{{server.build.env.MISC_INTERFACE}}\",\r\n \"bot.misc.record\": \"{{server.build.env.MISC_RECORD}}\",\r\n \"bot.misc.twitchAuth\": \"{{server.build.env.MISC_TWITCH}}\",\r\n \"bot.misc.advertisement\": \"{{server.build.env.MISC_ADV}}\",\r\n \"bot.misc.name\": \"{{server.build.env.MISC_NAME}}\",\r\n \"bot.misc.shards\": \"{{server.build.env.MISC_SHARD}}\"\r\n }\r\n }\r\n}",
|
||||||
|
"startup": "{\r\n \"done\": \"Finished Loading\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "^C"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!\/bin\/bash\r\n## this is a simple script to use the github API for release versions.\r\n## this requires the egg has a variable for GITHUB_PACKAGE and VERSION\r\n## this supports using oauth\/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.)\r\n## if you are getting hit with GitHub API limit issues then you need to have the user and token set.\r\napt update\r\napt install -y jq curl\r\n\r\n\r\nCONFIG_LINK=\"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/ree6\/config.yml\"\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Ree6-Applications\/Ree6\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Ree6-Applications\/Ree6\/releases\")\r\nMATCH=jar-with-dependencies.jar\r\n\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}\" | head -1 )\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}\" | head -1)\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 | grep -i *.jar)\r\n fi\r\nfi\r\n\r\n## Ree6 Setup\r\n[ ! -d \/mnt\/server ] && mkdir -p \/mnt\/server\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\ncd \/mnt\/server\r\necho -e \"\\nInstalling\/Updating Ree6...\\n\"\r\n\r\nif [ -f Ree6.jar ]; then\r\n echo -e \"Updating Ree6.jar to latest version...\"\r\n echo -e '\\t(Old version can be found at \"Ree6.jar-old\")'\r\n mv -f Ree6.jar Ree6.jar-old\r\nfi\r\n\r\necho -e \"Running: curl -sSL -o Ree6.jar ${DOWNLOAD_LINK}\\n\"\r\ncurl -sSL -o Ree6.jar ${DOWNLOAD_LINK}\r\n\r\nif [ -f config.yml ]; then\r\n echo -e \"Updating config.yml to latest version...\"\r\n echo -e '\\t(Old version can be found at \"config.yml-old\")'\r\n mv -f config.yml config.yml-old\r\nfi\r\n\r\necho -e \"Running: curl -sSL -o config.yml ${CONFIG_LINK}\\n\"\r\ncurl -sSL -o config.yml ${CONFIG_LINK}\r\n \r\n\r\necho -e \"\\nRee6 Successfully Installed!\"",
|
||||||
|
"container": "debian:bullseye-slim",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "[REQUIRED] Discord Bot Token",
|
||||||
|
"description": "The token for your Discord bot. Learn how to obtain a token and configure your bot application properly here: https:\/\/jmusicbot.com\/getting-a-bot-token\/",
|
||||||
|
"env_variable": "BOT_TOKEN",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Dagpi token",
|
||||||
|
"description": "Your Dagpi.xyz API-Token, for tweet image generation!",
|
||||||
|
"env_variable": "DAGPI_TOKEN",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sentry DSN",
|
||||||
|
"description": "Your Sentry DSN, for error reporting!",
|
||||||
|
"env_variable": "SENTRY_DSN",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Spotify Client Id",
|
||||||
|
"description": "Spotify Application Configuration, used to parse Spotify Tracks\/Playlists to YouTube search queries.",
|
||||||
|
"env_variable": "SPOTIFY_CLIENT_ID",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Spotify Client Secret",
|
||||||
|
"description": "Spotify Application Configuration, used to parse Spotify Tracks\/Playlists to YouTube search queries.",
|
||||||
|
"env_variable": "SPOTIFY_CLIENT_SECRET",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Heartbeat Url",
|
||||||
|
"description": "The URL to the Heartbeat-Server",
|
||||||
|
"env_variable": "HEARTBEAT_URL",
|
||||||
|
"default_value": "none",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Heartbeat Interval",
|
||||||
|
"description": "The interval between the heartbeats.",
|
||||||
|
"env_variable": "HEARTBEAT_INTERVAL",
|
||||||
|
"default_value": "60",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "integer",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Amari Token",
|
||||||
|
"description": "Your Amari API-Token, for Amari Level imports!",
|
||||||
|
"env_variable": "AMARI_TOKEN",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Twitch Client Id",
|
||||||
|
"description": "Twitch Application Configuration, used for the StreamTools and Twitch Notifications.",
|
||||||
|
"env_variable": "TWITCH_CLIENT_ID",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Twitch Client Secret",
|
||||||
|
"description": "Twitch Application Configuration, used for the StreamTools and Twitch Notifications.",
|
||||||
|
"env_variable": "TWITCH_CLIENT_SECRET",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Twitter Bearer Key",
|
||||||
|
"description": "Twitter Application Configuration, used for the Twitter Notifications.",
|
||||||
|
"env_variable": "TWITTER_BEARER",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Reddit Client Id",
|
||||||
|
"description": "Reddit Application Configuration, used for the Reddit Notification.",
|
||||||
|
"env_variable": "REDDIT_CLIENT_ID",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Reddit Client Secret",
|
||||||
|
"description": "Reddit Application Configuration, used for the Reddit Notification.",
|
||||||
|
"env_variable": "REDDIT_CLIENT_SECRET",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Instagram Username",
|
||||||
|
"description": "Instagram Application Configuration, used for the Instagram Notification.",
|
||||||
|
"env_variable": "INSTAGRAM_USERNAME",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Instagram Password",
|
||||||
|
"description": "Instagram Application Configuration, used for the Instagram Notification.",
|
||||||
|
"env_variable": "INSTAGRAM_PASSWORD",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "SQL Username",
|
||||||
|
"description": "Username for the SQL connection.",
|
||||||
|
"env_variable": "DATABASE_USER",
|
||||||
|
"default_value": "root",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "string|max:32",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "SQL Database",
|
||||||
|
"description": "Database for the SQL Connection",
|
||||||
|
"env_variable": "DATABASE_DB",
|
||||||
|
"default_value": "root",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "string|max:64",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "SQL Password",
|
||||||
|
"description": "Password for the SQL connection.",
|
||||||
|
"env_variable": "DATABASE_PW",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "SQL Port",
|
||||||
|
"description": "Port for the SQL connection.",
|
||||||
|
"env_variable": "DATABASE_PORT",
|
||||||
|
"default_value": "3306",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "integer",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Database Typ",
|
||||||
|
"description": "The Typ of the Database Ree6 should use!\r\nPossible typs:\r\n- mariadb\r\n- sqlite\r\n- h2\r\n- postgres",
|
||||||
|
"env_variable": "DATABASE_TYP",
|
||||||
|
"default_value": "sqlite",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|in:mariadb,sqlite,postgres,postregsql,h2",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Database Storagefile",
|
||||||
|
"description": "The location of the storagefile if sqlite is being used.",
|
||||||
|
"env_variable": "DATABASE_FILE",
|
||||||
|
"default_value": "storage\/Ree6.db",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:32",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "[DEVELOPER-STUFF] Database Poolsize",
|
||||||
|
"description": "The Database connection pool size!",
|
||||||
|
"env_variable": "DATABASE_POOL",
|
||||||
|
"default_value": "10",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|integer",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Database host",
|
||||||
|
"description": "The Host address of the Database connection.",
|
||||||
|
"env_variable": "DATABASE_HOST",
|
||||||
|
"default_value": "localhost",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "OpenAI Token",
|
||||||
|
"description": "Your Authentication token that should be used in the AI API calls.",
|
||||||
|
"env_variable": "AI_TOKEN",
|
||||||
|
"default_value": "OpenAI API-Token",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "OpenAI Url",
|
||||||
|
"description": "The URL that should receive the API calls.",
|
||||||
|
"env_variable": "AI_URL",
|
||||||
|
"default_value": "https:\/\/api.openai.com\/v1\/chat\/completions",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "OpenAI Model",
|
||||||
|
"description": "The AI model that should be used in the API calls.",
|
||||||
|
"env_variable": "AI_MODEL",
|
||||||
|
"default_value": "gpt-3.5-turbo-0301",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:32",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Activity Status",
|
||||||
|
"description": "The Activity status of the Bot that will be shown.",
|
||||||
|
"env_variable": "MISC_STATUS",
|
||||||
|
"default_value": "ree6.de | %guilds% Servers. (%shard%)",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Feedback Channel",
|
||||||
|
"description": "The Channel Id of the Feedback channel.",
|
||||||
|
"env_variable": "MISC_FEEDBACK",
|
||||||
|
"default_value": "0",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "integer",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "[DEVELOPER-STUFF] Bot Owner Id",
|
||||||
|
"description": "The ID of the Bot Owner, this will be used internally on some checks.",
|
||||||
|
"env_variable": "MISC_OWNER",
|
||||||
|
"default_value": "321580743488831490",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|integer",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Invite Link",
|
||||||
|
"description": "The Invite link to invite the Bot.",
|
||||||
|
"env_variable": "MISC_INVITE",
|
||||||
|
"default_value": "https:\/\/invite.ree6.de",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Predefined Information for AI",
|
||||||
|
"description": "The Information for the AI.",
|
||||||
|
"env_variable": "MISC_PREDEF",
|
||||||
|
"default_value": "You are Ree6 a Discord bot.",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Support Link",
|
||||||
|
"description": "The Url link for users to receive support.",
|
||||||
|
"env_variable": "MISC_SUPPORT",
|
||||||
|
"default_value": "https:\/\/support.ree6.de",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Website",
|
||||||
|
"description": "The Url to the Website of the Bot.",
|
||||||
|
"env_variable": "MISC_WEB",
|
||||||
|
"default_value": "https:\/\/ree6.de",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Webinterface",
|
||||||
|
"description": "The Url to the Webinterface.",
|
||||||
|
"env_variable": "MISC_INTERFACE",
|
||||||
|
"default_value": "https:\/\/cp.ree6.de",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Record Url",
|
||||||
|
"description": "The Url that uses can access to get their recording.",
|
||||||
|
"env_variable": "MISC_RECORD",
|
||||||
|
"default_value": "https:\/\/cp.ree6.de\/external\/recording",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Twitch Url",
|
||||||
|
"description": "The Url used to connect a Twitch Account with the Ree6 System.",
|
||||||
|
"env_variable": "MISC_TWITCH",
|
||||||
|
"default_value": "https:\/\/cp.ree6.de\/external\/twitch",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Advertisment",
|
||||||
|
"description": "The Advertisement in Embed Footers and the rest.",
|
||||||
|
"env_variable": "MISC_ADV",
|
||||||
|
"default_value": "powered by Tube-hosting",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Name",
|
||||||
|
"description": "The Name of the Bot.",
|
||||||
|
"env_variable": "MISC_NAME",
|
||||||
|
"default_value": "Ree6",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Shards",
|
||||||
|
"description": "The amount of shards that should be created.",
|
||||||
|
"env_variable": "MISC_SHARD",
|
||||||
|
"default_value": "1",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|integer",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -6,6 +6,11 @@ Listen to your favorite music together with all of your friends
|
|||||||
|
|
||||||
Welcome the Simple, Elegant & great sounding TS3- and Discord-Bot!
|
Welcome the Simple, Elegant & great sounding TS3- and Discord-Bot!
|
||||||
|
|
||||||
|
## First startup
|
||||||
|
|
||||||
|
On first startup wait until this message in the console appears: `TSClient quit.` Then press restart.
|
||||||
|
Now the SinusBot will fully startup and you can login to the WebUI.
|
||||||
|
|
||||||
## Server Ports
|
## Server Ports
|
||||||
|
|
||||||
1 port is required to run SinusBot.
|
1 port is required to run SinusBot.
|
||||||
|
|||||||
@@ -1,29 +1,29 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1",
|
"version": "PTDL_v2",
|
||||||
"update_url": null
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2022-02-06T02:44:05+02:00",
|
"exported_at": "2023-08-14T15:15:05+02:00",
|
||||||
"name": "Sinusbot",
|
"name": "Sinusbot",
|
||||||
"author": "support@pterodactyl.io",
|
"author": "support@pterodactyl.io",
|
||||||
"description": "Musicbot for Discord and Teamspeak.",
|
"description": "Musicbot for Discord and Teamspeak.",
|
||||||
"features": null,
|
"features": null,
|
||||||
"images": [
|
"docker_images": {
|
||||||
"quay.io\/parkervcp\/pterodactyl-images:bot_sinusbot"
|
"sinusbot": "ghcr.io\/parkervcp\/yolks:bot_sinusbot"
|
||||||
],
|
},
|
||||||
"file_denylist": [],
|
"file_denylist": [],
|
||||||
"startup": ".\/sinusbot --override-password=\"${OVERRIDE_PASSWORD}\"",
|
"startup": ".\/sinusbot --override-password=\"${OVERRIDE_PASSWORD}\"",
|
||||||
"config": {
|
"config": {
|
||||||
"files": "{\r\n \"config.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ListenPort\": \"ListenPort = {{server.build.default.port}}\",\r\n \"ListenHost\": \"ListenHost = \\\"0.0.0.0\\\"\"\r\n }\r\n }\r\n}",
|
"files": "{\r\n \"config.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ListenPort\": \"ListenPort = {{server.build.default.port}}\",\r\n \"ListenHost\": \"ListenHost = \\\"0.0.0.0\\\"\"\r\n }\r\n }\r\n}",
|
||||||
"startup": "{\r\n \"done\": \"Initialization complete\",\r\n \"userInteraction\": []\r\n}",
|
"startup": "{\r\n \"done\": \"Initialization complete\"\r\n}",
|
||||||
"logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}",
|
"logs": "{}",
|
||||||
"stop": "^C"
|
"stop": "^C"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"installation": {
|
"installation": {
|
||||||
"script": "#!\/bin\/bash\r\n# Sinusbot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install ca-certificates bzip2 wget tar curl jq\r\napt -q clean all\r\n\r\n#Create needed directories\r\nmkdir -p \/mnt\/server\/TeamSpeak3-Client-linux_amd64\/plugins\r\nmkdir \/mnt\/server\/youtube-dlp\r\n\r\ncd \/mnt\/server\r\n\r\n#Download Sinusbot\r\nwget -qO - https:\/\/www.sinusbot.com\/dl\/sinusbot.current.tar.bz2 | tar xj\r\n\r\n#Download Latest TeamSpeak Client\r\nTS_VERSION=$(curl https:\/\/teamspeak.com\/versions\/client.json | jq -r '.linux.x86_64.version')\r\nTS_DL_LINK=$(curl https:\/\/teamspeak.com\/versions\/client.json | jq -r '.linux.x86_64.mirrors.\"teamspeak.com\"')\r\n\r\necho -e \"downloading teamspeak version ${TS_VERSION}\"\r\necho -e \"running 'wget ${TS_DL_LINK}'\"\r\n\r\nwget ${TS_DL_LINK}\r\n\r\n# Install TeamSpeak Client\r\nchmod 0755 TeamSpeak3-Client-linux_amd64*.run\r\n.\/TeamSpeak3-Client-linux_amd64*.run --tar xfv -C TeamSpeak3-Client-linux_amd64\r\n\r\n## Cleaning up \r\n\r\nrm TeamSpeak3-Client-linux_amd64*.run\r\n# Remove glx-integration lib\r\nrm TeamSpeak3-Client-linux_amd64\/xcbglintegrations\/libqxcb-glx-integration.so\r\n\r\n#Install Sinusbot\r\nchmod +x sinusbot\r\ncp config.ini.dist config.ini\r\nsed -i \"s|^TS3Path.*|TS3Path = \\\"\/home\/container\/TeamSpeak3-Client-linux_amd64\/ts3client_linux_amd64\\\"|g\" config.ini\r\necho 'YoutubeDLPath = \"\/home\/container\/youtube-dlp\/youtube-dlp\"' >> config.ini\r\n\r\n#Install Sinusbot plugin\r\ncp plugin\/libsoundbot_plugin.so TeamSpeak3-Client-linux_amd64\/plugins\r\n\r\n#Download youtube-dlp\r\ncd \/mnt\/server\/youtube-dlp\r\nwget https:\/\/github.com\/yt-dlp\/yt-dlp\/releases\/latest\/download\/yt-dlp -O youtube-dlp\r\nchmod a+rx youtube-dlp",
|
"script": "#!\/bin\/bash\r\n# Sinusbot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install ca-certificates bzip2 wget tar curl jq\r\napt -q clean all\r\n\r\n#Create needed directories\r\nmkdir -p \/mnt\/server\/TeamSpeak3-Client-linux_amd64\/plugins\r\nmkdir \/mnt\/server\/youtube-dlp\r\n\r\ncd \/mnt\/server\r\n\r\n#Download Sinusbot\r\nwget -qO - https:\/\/www.sinusbot.com\/dl\/sinusbot.current.tar.bz2 | tar xj\r\n\r\n\r\n#Download Latest TeamSpeak Client\r\n#TS_VERSION=$(curl https:\/\/teamspeak.com\/versions\/client.json | jq -r '.linux.x86_64.version')\r\n#TS_DL_LINK=$(curl https:\/\/teamspeak.com\/versions\/client.json | jq -r '.linux.x86_64.mirrors.\"teamspeak.com\"')\r\n\r\n# Sinusbot is not yet updated...\r\nTS_VERSION=3.5.6\r\nTS_DL_LINK=https:\/\/files.teamspeak-services.com\/releases\/client\/3.5.6\/TeamSpeak3-Client-linux_amd64-3.5.6.run\r\n\r\necho -e \"downloading teamspeak version ${TS_VERSION}\"\r\necho -e \"running 'wget ${TS_DL_LINK}'\"\r\n\r\nwget ${TS_DL_LINK}\r\n\r\n# Install TeamSpeak Client\r\nchmod 0755 TeamSpeak3-Client-linux_amd64*.run\r\n.\/TeamSpeak3-Client-linux_amd64*.run --tar xfv -C TeamSpeak3-Client-linux_amd64\r\n\r\n## Cleaning up \r\n\r\nrm TeamSpeak3-Client-linux_amd64*.run\r\n# Remove glx-integration lib\r\nrm TeamSpeak3-Client-linux_amd64\/xcbglintegrations\/libqxcb-glx-integration.so\r\n\r\n#Install Sinusbot\r\nchmod +x sinusbot\r\ncp config.ini.dist config.ini\r\nsed -i \"s|^TS3Path.*|TS3Path = \\\"\/home\/container\/TeamSpeak3-Client-linux_amd64\/ts3client_linux_amd64\\\"|g\" config.ini\r\necho 'YoutubeDLPath = \"\/home\/container\/youtube-dlp\/youtube-dlp\"' >> config.ini\r\n\r\n#Install Sinusbot plugin\r\ncp plugin\/libsoundbot_plugin.so TeamSpeak3-Client-linux_amd64\/plugins\r\n\r\n#Download youtube-dlp\r\ncd \/mnt\/server\/youtube-dlp\r\nwget https:\/\/github.com\/yt-dlp\/yt-dlp\/releases\/latest\/download\/yt-dlp -O youtube-dlp\r\nchmod a+rx youtube-dlp\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
|
||||||
"container": "ubuntu:18.04",
|
"container": "debian:bullseye-slim",
|
||||||
"entrypoint": "bash"
|
"entrypoint": "bash"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -32,10 +32,11 @@
|
|||||||
"name": "Password",
|
"name": "Password",
|
||||||
"description": "Password for admin account.",
|
"description": "Password for admin account.",
|
||||||
"env_variable": "OVERRIDE_PASSWORD",
|
"env_variable": "OVERRIDE_PASSWORD",
|
||||||
"default_value": "CHANGEME",
|
"default_value": "",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string|max:20"
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,36 +1,42 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1"
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2019-01-11T00:40:33+01:00",
|
"exported_at": "2022-07-03T18:18:04-04:00",
|
||||||
"name": "JTS3ServerMod",
|
"name": "JTS3ServerMod",
|
||||||
"author": "teamwuffy@gmail.com",
|
"author": "teamwuffy@gmail.com",
|
||||||
"description": "Setup:\r\n- Install the latest version\r\n- Go into config\/server1 and edit JTS3ServerMod_server.cfg\r\n- Save and start the server\r\n\r\nAuthor: https:\/\/www.stefan1200.de\/forum\/index.php?topic=2.0",
|
"description": "Setup:\r\n- Install the latest version\r\n- Go into config\/server1 and edit JTS3ServerMod_server.cfg\r\n- Save and start the server\r\n\r\nAuthor: https:\/\/www.stefan1200.de\/forum\/index.php?topic=2.0",
|
||||||
"image": "quay.io\/pterodactyl\/core:java",
|
"features": null,
|
||||||
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar .\/JTS3ServerMod.jar",
|
"docker_images": {
|
||||||
|
"ghcr.io\/pterodactyl\/yolks:java_8": "ghcr.io\/pterodactyl\/yolks:java_8"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar JTS3ServerMod.jar",
|
||||||
"config": {
|
"config": {
|
||||||
"files": "{}",
|
"files": "{}",
|
||||||
"startup": "{\r\n \"done\": \"Successful connected to \",\r\n \"userInteraction\": []\r\n}",
|
"startup": "{\r\n \"done\": \"Successful connected to \"\r\n}",
|
||||||
"logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}",
|
"logs": "{}",
|
||||||
"stop": "^C"
|
"stop": "^C"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"installation": {
|
"installation": {
|
||||||
"script": "#!\/bin\/bash\r\n# JTS3ServerMod\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y install wget unzip\r\n\r\ncd \/tmp\r\n\r\nif [ -z \"$SERVER_VERSION\" ] || [ \"$SERVER_VERSION\" == \"latest\" ]; then\r\n wget -q -O JTS3ServerMod.zip 'https:\/\/www.stefan1200.de\/dlrequest.php?file=jts3servermod&type=.zip'\r\nelse\r\n wget -q -O JTS3ServerMod.zip 'https:\/\/www.stefan1200.de\/downloads\/JTS3ServerMod_$SERVER_VERSION.zip'\r\nfi\r\n\r\nunzip JTS3ServerMod.zip\r\n\r\nmkdir -p \/mnt\/server\r\nexport HOME=\/mnt\/server\r\n\r\nmv \/tmp\/JTS3ServerMod\/* \/mnt\/server\/",
|
"script": "#!\/bin\/bash\r\n# JTS3ServerMod\r\n#\r\n# Server Files: \/mnt\/server\r\n# All required packages are installed in the used install image ghcr.io\/parkervcp\/installers:debian\r\n\r\nexport HOME=\/mnt\/server\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [ -z \"$SERVER_VERSION\" ] || [ \"$SERVER_VERSION\" == \"latest\" ]; then\r\n echo -e \"Downloading latest version with curl -L \"https:\/\/www.stefan1200.de\/dlrequest.php?file=jts3servermod &\r\n type=.zip\" -o JTS3ServerMod.zip\"\r\n curl -L \"https:\/\/www.stefan1200.de\/dlrequest.php?file=jts3servermod&type=.zip\" -o JTS3ServerMod.zip\r\nelse\r\n echo -e \"running curl -L \"https:\/\/www.stefan1200.de\/downloads\/JTS3ServerMod_$SERVER_VERSION.zip\" -o JTS3ServerMod.zip\"\r\n curl -L \"https:\/\/www.stefan1200.de\/downloads\/JTS3ServerMod_$SERVER_VERSION.zip\" -o JTS3ServerMod.zip\r\nfi\r\n\r\n# no need to continue if we don't have an archive\r\nif [ ! -f JTS3ServerMod.zip ]; then\r\n echo \"JTS3ServerMod.zip not found. Something went wrong. Exiting\"\r\n exit 2\r\nfi\r\n\r\nunzip JTS3ServerMod.zip\r\nrm JTS3ServerMod.zip JTS3ServerMod-Windows.exe JTS3ServerMod-Windows_NoWindow.exe jts3servermod_startscript.sh\r\necho -e \"Installation completed.\\nConfiguration of the server must be done in the config folder to proceed.\"",
|
||||||
"container": "ubuntu:18.04",
|
"container": "ghcr.io\/parkervcp\/installers:debian",
|
||||||
"entrypoint": "bash"
|
"entrypoint": "bash"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"variables": [
|
"variables": [
|
||||||
{
|
{
|
||||||
"name": "Version",
|
"name": "Version",
|
||||||
"description": "",
|
"description": "Version to download. Use latest to install latest version",
|
||||||
"env_variable": "SERVER_VERSION",
|
"env_variable": "SERVER_VERSION",
|
||||||
"default_value": "latest",
|
"default_value": "latest",
|
||||||
"user_viewable": 1,
|
"user_viewable": true,
|
||||||
"user_editable": 1,
|
"user_editable": true,
|
||||||
"rules": "required|string|max:20"
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,29 +1,13 @@
|
|||||||
# PhantomBot
|
# PhantomBot
|
||||||
|
|
||||||
[WebSite](https://phantombot.github.io/PhantomBot/)
|
[Website](https://phantombot.dev/)
|
||||||
[GitHub](https://github.com/phantombot/PhantomBot)
|
[GitHub](https://github.com/phantombot/PhantomBot)
|
||||||
PhantomBot is an actively developed open source interactive Twitch bot with a vibrant community that provides entertainment and moderation for your channel, allowing you to focus on what matters the most to you - your game and your viewers.
|
PhantomBot is an actively developed open source interactive Twitch bot with a vibrant community that provides entertainment and moderation for your channel, allowing you to focus on what matters the most to you - your game and your viewers.
|
||||||
|
|
||||||
## Server Ports
|
## Server Ports
|
||||||
|
|
||||||
3 ports are required to run PhantomBot.
|
1 port is required to run PhantomBot.
|
||||||
|
|
||||||
| Port | default |
|
| Port | default |
|
||||||
|---------------------|---------|
|
|---------------------|---------|
|
||||||
| Game (HTTP Server) | 25000 |
|
| Web UI (HTTP Server)| 25000 |
|
||||||
| YoutubeSocketServer | 25003 |
|
|
||||||
| PanelSocketServer | 25004 |
|
|
||||||
|
|
||||||
### NOTES
|
|
||||||
|
|
||||||
You need to define one main port and the other 2 port need to be +3 and +4!
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
Port1: 1000
|
|
||||||
|
|
||||||
Port2: 1003
|
|
||||||
|
|
||||||
Port3: 1004
|
|
||||||
|
|
||||||
this are forced and can't be changed!
|
|
||||||
|
|||||||
@@ -1,37 +1,43 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1"
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2020-12-16T19:18:24+02:00",
|
"exported_at": "2023-09-02T23:24:58+00:00",
|
||||||
"name": "PhantomBot",
|
"name": "PhantomBot",
|
||||||
"author": "mail@wuffy.eu",
|
"author": "mail@wuffy.eu",
|
||||||
"description": "PhantomBot is an actively developed open source interactive Twitch bot with a vibrant community that provides entertainment and moderation for your channel, allowing you to focus on what matters the most to you - your game and your viewers.",
|
"description": "PhantomBot is an actively developed open source interactive Twitch bot with a vibrant community that provides entertainment and moderation for your channel, allowing you to focus on what matters the most to you - your game and your viewers.",
|
||||||
"features": null,
|
"features": null,
|
||||||
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_openjdk-11",
|
"docker_images": {
|
||||||
|
"Java 16 [DEPRECATED]": "ghcr.io\/parkervcp\/yolks:java_16",
|
||||||
|
"Java 19": "ghcr.io\/parkervcp\/yolks:java_19"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
"startup": "java --add-opens java.base\/java.lang=ALL-UNNAMED -Djava.security.policy=config\/security -Dinteractive -Xms1m -Dfile.encoding=UTF-8 -jar PhantomBot.jar",
|
"startup": "java --add-opens java.base\/java.lang=ALL-UNNAMED -Djava.security.policy=config\/security -Dinteractive -Xms1m -Dfile.encoding=UTF-8 -jar PhantomBot.jar",
|
||||||
"config": {
|
"config": {
|
||||||
"files": "{\r\n \"config\/botlogin.txt\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"baseport\": \"{{server.build.default.port}}\",\r\n \"channel\": \"{{server.build.env.CHANNEL_NAME}}\",\r\n \"owner\": \"{{server.build.env.CHANNEL_OWNER}}\",\r\n \"apioauth\": \"{{server.build.env.USER_OAUTH_TOKEN}}\",\r\n \"oauth\": \"{{server.build.env.BOT_OAUTH_TOKEN}}\",\r\n \"paneluser\": \"{{server.build.env.WEBPANEL_USERNAME}}\",\r\n \"panelpassword\": \"{{server.build.env.WEBPANEL_PASSWORD}}\",\r\n \"user\": \"{{server.build.env.BOT_TWITCH_USERNAME}}\",\r\n \"youtubekey\": \"{{server.build.env.YOUTUBE_API_KEY}}\",\r\n \"discord_token\": \"{{server.build.env.DISCORD_BOT_TOKEN}}\"\r\n }\r\n }\r\n}",
|
"files": "{\r\n \"config\/botlogin.txt\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"baseport\": \"{{server.build.default.port}}\",\r\n \"channel\": \"{{server.build.env.CHANNEL_NAME}}\",\r\n \"owner\": \"{{server.build.env.CHANNEL_OWNER}}\",\r\n \"paneluser\": \"{{server.build.env.WEBPANEL_USERNAME}}\",\r\n \"panelpassword\": \"{{server.build.env.WEBPANEL_PASSWORD}}\",\r\n \"user\": \"{{server.build.env.BOT_TWITCH_USERNAME}}\",\r\n \"youtubekey\": \"{{server.build.env.YOUTUBE_API_KEY}}\",\r\n \"discord_token\": \"{{server.build.env.DISCORD_BOT_TOKEN}}\"\r\n }\r\n }\r\n}",
|
||||||
"startup": "{\r\n \"done\": \"Connecting to Twitch WS-IRC Server\",\r\n \"userInteraction\": []\r\n}",
|
"startup": "{\r\n \"done\": \"Joined \"\r\n}",
|
||||||
"logs": "{\r\n \"custom\": true,\r\n \"location\": \"latest.log\"\r\n}",
|
"logs": "{}",
|
||||||
"stop": "exit"
|
"stop": "exit"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"installation": {
|
"installation": {
|
||||||
"script": "#!\/bin\/bash\r\n# PhantomBot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt -y --no-install-recommends install curl ca-certificates unzip\r\n\r\ncd \/tmp\r\n\r\n# Fetching latest github release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"master\" ]; then\r\n echo -e \"Using latest Github Master version\"\r\n DOWNLOAD_URL=https:\/\/raw.githubusercontent.com\/PhantomBot\/nightly-build\/master\/PhantomBot-nightly-lin.zip\r\nelse\r\n if [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n echo -e \"Using latest release version\"\r\n RELEASE_VERSION=$(curl -s \"https:\/\/github.com\/PhantomBot\/PhantomBot\/releases\/latest\" | grep -o '[0-9].[0-9].[0-9]')\r\n fi\r\n DOWNLOAD_URL=https:\/\/github.com\/PhantomBot\/PhantomBot\/releases\/download\/v${RELEASE_VERSION}\/PhantomBot-${RELEASE_VERSION}.zip\r\nfi\r\n\r\n# Download files\r\ncd \/mnt\/server\r\ncurl -LJO ${DOWNLOAD_URL}\r\nunzip -o PhantomBot-*.zip\r\n\r\n# Move unzipped files into the server folder\r\ncp -f -r .\/PhantomBot-*\/* \/mnt\/server\/\r\n\r\n# Creating default config\r\nif [ ! -f \/mnt\/server\/config\/botlogin.txt ]; then\r\n echo -e \"Creating config\/botlogin.txt\"\r\n cat << EOF > \/mnt\/server\/config\/botlogin.txt\r\n #PhantomBot Configuration File\r\n #\r\n # Here is a list wiht all config values:\r\n # https:\/\/community.phantom.bot\/t\/settings-for-botlogin-txt\/78\r\n #\r\n apioauth=\r\n baseport=\r\n channel=\r\n oauth=\r\n owner=\r\n panelpassword=\r\n paneluser=\r\n user=\r\n youtubekey=\r\n discord_token=\r\nEOF\r\nfi",
|
"script": "#!\/bin\/bash\r\n# PhantomBot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt -y --no-install-recommends install curl wget ca-certificates unzip\r\n\r\ncd \/tmp\r\n\r\n# Fetching latest github release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"master\" ]; then\r\n echo -e \"Using latest Github Master version\"\r\n DOWNLOAD_URL=https:\/\/raw.githubusercontent.com\/PhantomBot\/nightly-build\/master\/PhantomBot-nightly-lin.zip\r\nelse\r\n if [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n echo -e \"Using latest release version\"\r\n RELEASE_VERSION=$(curl -s \"https:\/\/api.github.com\/repos\/PhantomBot\/PhantomBot\/releases\/latest\" | grep -e '\"tag_name\"' | sed -E 's\/.*\"([^\"]+)\".*\/\\1\/' | sed 's\/^.\/\/')\r\n fi\r\n DOWNLOAD_URL=https:\/\/github.com\/PhantomBot\/PhantomBot\/releases\/download\/v${RELEASE_VERSION}\/PhantomBot-${RELEASE_VERSION}-lin.zip\r\n echo -e \"${DOWNLOAD_URL}\"\r\nfi\r\n\r\n# Download files\r\ncd \/mnt\/server\r\nwget ${DOWNLOAD_URL} -O PhantomBot.zip\r\n\r\n# Unzip files and delete the archive\r\nunzip -o PhantomBot.zip\r\nrm PhantomBot.zip\r\n\r\n# Move unzipped files into the server folder and delete the folder \r\ncp -f -r .\/PhantomBot-*\/* \/mnt\/server\/\r\nrm -rf PhantomBot-*\/\r\n\r\n# Creating default config\r\nif [ ! -f \/mnt\/server\/config\/botlogin.txt ]; then\r\n echo -e \"Creating config\/botlogin.txt\"\r\n cat << EOF > \/mnt\/server\/config\/botlogin.txt\r\n #PhantomBot Configuration File\r\n #\r\n # Here is a list wiht all config values:\r\n # https:\/\/community.phantom.bot\/t\/settings-for-botlogin-txt\/78\r\n #\r\n apioauth=\r\n baseport=\r\n channel=\r\n oauth=\r\n owner=\r\n panelpassword=\r\n paneluser=\r\n user=\r\n youtubekey=\r\n discord_token=\r\nEOF\r\nfi\r\necho \"install finished\"",
|
||||||
"container": "debian:buster-slim",
|
"container": "debian:bullseye-slim",
|
||||||
"entrypoint": "bash"
|
"entrypoint": "bash"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"variables": [
|
"variables": [
|
||||||
{
|
{
|
||||||
"name": "Version",
|
"name": "Version",
|
||||||
"description": "latest = Latest Stable\r\nmaster = latest Github",
|
"description": "latest = Latest Stable\r\nmaster = latest Github\r\n3.9.0.7 = Latest known working with Java 16",
|
||||||
"env_variable": "RELEASE_VERSION",
|
"env_variable": "RELEASE_VERSION",
|
||||||
"default_value": "latest",
|
"default_value": "latest",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string|max:9"
|
"rules": "required|string|max:9",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Twitch Channel Name",
|
"name": "Twitch Channel Name",
|
||||||
@@ -40,7 +46,8 @@
|
|||||||
"default_value": "",
|
"default_value": "",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string|max:26"
|
"rules": "required|string|max:26",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Channel Owner",
|
"name": "Channel Owner",
|
||||||
@@ -49,25 +56,8 @@
|
|||||||
"default_value": "",
|
"default_value": "",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string|max:26"
|
"rules": "required|string|max:26",
|
||||||
},
|
"field_type": "text"
|
||||||
{
|
|
||||||
"name": "Bot OAuth Token",
|
|
||||||
"description": "Please note, this OAuth token needs to be generated while you're logged in into the bot's Twitch account.\r\nIf you're not logged in as the bot, please go to https:\/\/twitch.tv\/ and login as the bot.\r\nGet the bot's OAuth token here: https:\/\/twitchapps.com\/tmi\/",
|
|
||||||
"env_variable": "BOT_OAUTH_TOKEN",
|
|
||||||
"default_value": "",
|
|
||||||
"user_viewable": true,
|
|
||||||
"user_editable": true,
|
|
||||||
"rules": "required|string|max:64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Your OAuth Token",
|
|
||||||
"description": "Please note, this OAuth token needs to be generated while you're logged in into your caster account.\r\nIf you're not logged in as the caster, please go to https:\/\/twitch.tv\/ and login as the caster.\r\nGet the your OAuth token here: https:\/\/phantombot.github.io\/PhantomBot\/oauth\/",
|
|
||||||
"env_variable": "USER_OAUTH_TOKEN",
|
|
||||||
"default_value": "",
|
|
||||||
"user_viewable": true,
|
|
||||||
"user_editable": true,
|
|
||||||
"rules": "required|string|max:64"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Bot Twitch Username",
|
"name": "Bot Twitch Username",
|
||||||
@@ -76,7 +66,8 @@
|
|||||||
"default_value": "",
|
"default_value": "",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string|max:26"
|
"rules": "required|string|max:26",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Webpanel Username",
|
"name": "Webpanel Username",
|
||||||
@@ -85,7 +76,8 @@
|
|||||||
"default_value": "",
|
"default_value": "",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string|max:64"
|
"rules": "required|string|max:64",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Webpanel Password",
|
"name": "Webpanel Password",
|
||||||
@@ -94,25 +86,28 @@
|
|||||||
"default_value": "",
|
"default_value": "",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string|max:2000"
|
"rules": "required|string|max:2000",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Youtube API Key",
|
"name": "Youtube API Key",
|
||||||
"description": "https:\/\/community.phantom.bot\/t\/acquire-youtube-api-key\/222",
|
"description": "https:\/\/phantombot.dev\/guides\/#guide=content\/integrations\/youtubesetup",
|
||||||
"env_variable": "YOUTUBE_API_KEY",
|
"env_variable": "YOUTUBE_API_KEY",
|
||||||
"default_value": "",
|
"default_value": "",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "max:64"
|
"rules": "max:128",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Discord Bot Token",
|
"name": "Discord Bot Token",
|
||||||
"description": "https:\/\/community.phantom.bot\/t\/discord-integration-setup\/64",
|
"description": "https:\/\/phantombot.dev\/guides\/#guide=content\/integrations\/discordintegrationsetup",
|
||||||
"env_variable": "DISCORD_BOT_TOKEN",
|
"env_variable": "DISCORD_BOT_TOKEN",
|
||||||
"default_value": "",
|
"default_value": "",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "max:64"
|
"rules": "max:128",
|
||||||
|
"field_type": "text"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1",
|
"version": "PTDL_v2",
|
||||||
"update_url": null
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2021-12-13T15:19:16+01:00",
|
"exported_at": "2023-04-23T18:47:53+02:00",
|
||||||
"name": "SogeBot",
|
"name": "SogeBot",
|
||||||
"author": "info@goover.de",
|
"author": "eggs@goover.dev",
|
||||||
"description": "sogeBot - Free Twitch Bot built on Node.js https:\/\/sogebot.xyz\/",
|
"description": "sogeBot - Free Twitch Bot built on Node.js https:\/\/sogebot.xyz\/",
|
||||||
"features": null,
|
"features": null,
|
||||||
"images": [
|
"docker_images": {
|
||||||
"ghcr.io\/parkervcp\/yolks:nodejs_16"
|
"ghcr.io\/parkervcp\/yolks:nodejs_18": "ghcr.io\/parkervcp\/yolks:nodejs_18"
|
||||||
],
|
},
|
||||||
"file_denylist": [],
|
"file_denylist": [],
|
||||||
"startup": "npm start",
|
"startup": "npm start",
|
||||||
"config": {
|
"config": {
|
||||||
@@ -22,8 +22,8 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"installation": {
|
"installation": {
|
||||||
"script": "#\/bin\/bash\r\n# Installscript for sogeBot | Author: info@goover.de\r\n\r\nexport DEBIAN_FRONTEND=noninteractive\r\n\r\napt -y update\r\napt install -y curl unzip sqlite3 jq wget python3 build-essential ca-certificates\r\n\r\nexport NODE_OPTIONS=--max-old-space-size=8192\r\nchown -R root:root \/mnt\r\nMATCH=sogeBot\r\ncd \/mnt\/server\r\n\r\n#Backup database & config\r\nmkdir -p .backup\r\ncp -f .env \/mnt\/server\/.backup\r\ncp -f sogebot.db \/mnt\/server\/.backup\r\n\r\n#delete old dir's to prevent errors on update\r\nrm -fR dest\r\nrm -fR public\r\nrm -fR node-modules\r\nrm -fR tools\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/sogebot\/sogeBot\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/sogebot\/sogeBot\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(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\necho -e \"Downloading from $DOWNLOAD_LINK\"\r\nwget -N $DOWNLOAD_LINK\r\nunzip -o $MATCH-*.zip\r\nrm -fR $MATCH-*.zip\r\n\r\necho \"--------------------------------------------------------------------------\"\r\necho \"Installing dependencies, this will take some time so sit back and relax...\"\r\necho \"IGNORE WARNINGS. THESE ARE NOT ERRORS !!!\"\r\necho \"--------------------------------------------------------------------------\"\r\n\r\nnpm ci 2>&1 | tee npmlog.txt\r\n\r\necho -e \"install completed\"\r\nexit 0",
|
"script": "#\/bin\/bash\r\n# Installscript for sogeBot | Author: eggs@goover.dev\r\n\r\nexport DEBIAN_FRONTEND=noninteractive\r\n\r\napt -y update\r\napt install -y curl unzip jq python3 build-essential ca-certificates\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\nexport NODE_OPTIONS=--max-old-space-size=8192\r\nchown -R root:root \/mnt\r\n\r\n#Backup database & config\r\nmkdir -p .backup\r\ncp -f .env \/mnt\/server\/.backup\r\ncp -f sogebot.db \/mnt\/server\/.backup\r\n\r\n#delete old dir's to prevent errors on update\r\nrm -fR dest\r\nrm -fR public\r\nrm -fR node-modules\r\nrm -fR tools\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/sogebot\/sogeBot\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/sogebot\/sogeBot\/releases\")\r\nMATCH=sogeBot\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(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\necho -e \"Downloading from $DOWNLOAD_LINK\"\r\ncurl -sSL -o sogeBot.zip ${DOWNLOAD_LINK}\r\n\r\nunzip -o sogeBot.zip\r\nrm -rf sogeBot.zip\r\n\r\n\r\necho \"--------------------------------------------------------------------------\"\r\necho \"Installing dependencies, this will take some time so sit back and relax...\"\r\necho \"IGNORE WARNINGS. THESE ARE NOT ERRORS !!!\"\r\necho \"--------------------------------------------------------------------------\"\r\n\r\nnpm install -g npm@8\r\n\r\nnpm install --verbose --force\r\n\r\necho -e \"install completed\"\r\nexit 0",
|
||||||
"container": "node:16-bullseye-slim",
|
"container": "node:18-bullseye-slim",
|
||||||
"entrypoint": "bash"
|
"entrypoint": "bash"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -35,7 +35,8 @@
|
|||||||
"default_value": "latest",
|
"default_value": "latest",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string|max:20"
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
+9
-5
@@ -1,23 +1,27 @@
|
|||||||
# databases
|
# Databases
|
||||||
|
|
||||||
## In-Memory Databases
|
## In-Memory Databases
|
||||||
|
|
||||||
### [redis](/redis/)
|
### [redis](redis)
|
||||||
|
|
||||||
https://redis.io/
|
https://redis.io/
|
||||||
|
|
||||||
## NoSQL
|
## NoSQL
|
||||||
|
|
||||||
### [mongodb](/nosql/mongodb/)
|
### [mongodb](nosql/mongodb)
|
||||||
|
|
||||||
https://www.mongodb.com/
|
https://www.mongodb.com/
|
||||||
|
|
||||||
|
### [rethinkdb](nosql/rethinkdb)
|
||||||
|
|
||||||
|
https://rethinkdb.com/
|
||||||
|
|
||||||
## SQL Databases
|
## SQL Databases
|
||||||
|
|
||||||
### [mariadb](/sql/mariadb/)
|
### [mariadb](sql/mariadb)
|
||||||
|
|
||||||
https://mariadb.org/
|
https://mariadb.org/
|
||||||
|
|
||||||
### [postgres](/sql/postgres/)
|
### [postgres](sql/postgres)
|
||||||
|
|
||||||
https://www.postgresql.org/
|
https://www.postgresql.org/
|
||||||
|
|||||||
@@ -1,9 +1,43 @@
|
|||||||
# mongoDB
|
# MongoDB
|
||||||
|
|
||||||
## From their [Website](https://www.mongodb.com/)
|
## From their [Website](https://www.mongodb.com/)
|
||||||
|
|
||||||
MongoDB is a general purpose, document-based, distributed database built for modern application developers and for the cloud era.
|
MongoDB is a general purpose, document-based, distributed database built for modern application developers and for the cloud era.
|
||||||
|
|
||||||
|
### MongoDB free monitoring.
|
||||||
|
|
||||||
|
To disable the message about free monitoring you can run `db.disableFreeMonitoring()`.
|
||||||
|
|
||||||
|
## Security
|
||||||
|
|
||||||
|
By default, MongoDB **does not enforce access control**, meaning that even if you set an admin username and password in the settings of your Pterodactyl server, **anyone will be able to connect to the database without authentication**, and perform any operation.
|
||||||
|
|
||||||
|
> :warning: This is why we recommend to expose your MongoDB database only to your local network, if possible
|
||||||
|
|
||||||
|
### Enabling authentication
|
||||||
|
|
||||||
|
To enable authentification, you need to edit the following lines to your `mongod.conf` file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
security:
|
||||||
|
authorization: "enabled"
|
||||||
|
```
|
||||||
|
|
||||||
|
> :closed_lock_with_key: To learn more about MongoDB security, you can read the [MongoDB Security Checklist](https://www.mongodb.com/docs/manual/administration/security-checklist/#security-checklist)
|
||||||
|
|
||||||
|
### Notes specific to the MongoDB 6 egg
|
||||||
|
|
||||||
|
**The [MongoDB 6 egg](./egg-mongo-d-b6.json) enables access control by default** in the `mongod.conf` file, meaning that even if people will be able to connect to your database as guests, [they will not be able to perform any operation, apart from nonhazardous commands](https://dba.stackexchange.com/a/292175)
|
||||||
|
|
||||||
|
### Disabling authentication
|
||||||
|
|
||||||
|
**If you know what you are doing** and want to explicitly disable access control, you can edit the following lines to your `mongod.conf` file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
security:
|
||||||
|
authorization: "disabled"
|
||||||
|
```
|
||||||
|
|
||||||
## Minimum RAM warning
|
## Minimum RAM warning
|
||||||
|
|
||||||
MongoDB requires approximately 1GB of RAM per 100.000 assets. If the system has to start swapping memory to disk, this will have a severely negative impact on performance, and should be avoided.
|
MongoDB requires approximately 1GB of RAM per 100.000 assets. If the system has to start swapping memory to disk, this will have a severely negative impact on performance, and should be avoided.
|
||||||
|
|||||||
@@ -1,13 +1,19 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1"
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2020-10-30T13:01:44+00:00",
|
"exported_at": "2022-08-28T13:33:51+02:00",
|
||||||
"name": "MongoDB",
|
"name": "MongoDB",
|
||||||
"author": "parker@parkervcp.com",
|
"author": "parker@parkervcp.com",
|
||||||
"description": "MongoDB is a general purpose, document-based, distributed database built for modern application developers and for my butt era.",
|
"description": "MongoDB is a general purpose, document-based, distributed database built for modern application developers and for my butt era.",
|
||||||
"image": "quay.io\/parkervcp\/pterodactyl-images:db_mongo-4",
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"MongoDB_4": "ghcr.io\/parkervcp\/yolks:mongodb_4",
|
||||||
|
"MongoDB_5": "ghcr.io\/parkervcp\/yolks:mongodb_5"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
"startup": "mongod --fork --dbpath \/home\/container\/mongodb\/ --port ${SERVER_PORT} --bind_ip 0.0.0.0 --logpath \/home\/container\/logs\/mongo.log -f \/home\/container\/mongod.conf; until nc -z -v -w5 127.0.0.1 ${SERVER_PORT}; do echo 'Waiting for mongodb connection...'; sleep 5; done && mongo --username ${MONGO_USER} --password ${MONGO_USER_PASS} --host 127.0.0.1:${SERVER_PORT} && mongo --eval \"db.getSiblingDB('admin').shutdownServer()\" 127.0.0.1:${SERVER_PORT}",
|
"startup": "mongod --fork --dbpath \/home\/container\/mongodb\/ --port ${SERVER_PORT} --bind_ip 0.0.0.0 --logpath \/home\/container\/logs\/mongo.log -f \/home\/container\/mongod.conf; until nc -z -v -w5 127.0.0.1 ${SERVER_PORT}; do echo 'Waiting for mongodb connection...'; sleep 5; done && mongo --username ${MONGO_USER} --password ${MONGO_USER_PASS} --host 127.0.0.1:${SERVER_PORT} && mongo --eval \"db.getSiblingDB('admin').shutdownServer()\" 127.0.0.1:${SERVER_PORT}",
|
||||||
"config": {
|
"config": {
|
||||||
"files": "{}",
|
"files": "{}",
|
||||||
@@ -30,16 +36,18 @@
|
|||||||
"default_value": "admin",
|
"default_value": "admin",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string"
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Mongo Admin Password",
|
"name": "Mongo Admin Password",
|
||||||
"description": "",
|
"description": "",
|
||||||
"env_variable": "MONGO_USER_PASS",
|
"env_variable": "MONGO_USER_PASS",
|
||||||
"default_value": "aP@55word",
|
"default_value": "",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string"
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2022-10-31T17:26:13+00:00",
|
||||||
|
"name": "MongoDB 6",
|
||||||
|
"author": "parker@parkervcp.com",
|
||||||
|
"description": "MongoDB is a general purpose, document-based, distributed database built for modern application developers and for my butt era.",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"MongoDB_6": "ghcr.io\/parkervcp\/yolks:mongodb_6"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": "mongod --fork --dbpath \/home\/container\/mongodb\/ --port ${SERVER_PORT} --bind_ip 0.0.0.0 --logpath \/home\/container\/logs\/mongo.log -f \/home\/container\/mongod.conf; until nc -z -v -w5 127.0.0.1 ${SERVER_PORT}; do echo 'Waiting for mongodb connection...'; sleep 5; done; mongosh --username ${MONGO_USER} --password ${MONGO_USER_PASS} --host 127.0.0.1:${SERVER_PORT} && mongosh --eval \"db.getSiblingDB('admin').shutdownServer()\" 127.0.0.1:${SERVER_PORT}",
|
||||||
|
"config": {
|
||||||
|
"files": "{\r\n \"mongod.conf\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"#security:\": \"security: \\r\\n authorization: \\\"enabled\\\"\"\r\n }\r\n }\r\n}",
|
||||||
|
"startup": "{\r\n \"done\": \"child process started successfully\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "exit"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!\/bin\/bash \r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\ncp \/etc\/mongod.conf.orig \/mnt\/server\/mongod.conf\r\n\r\nmkdir mongodb logs\r\n\r\nmongod --port 27017 --dbpath \/mnt\/server\/mongodb\/ --logpath \/mnt\/server\/logs\/mongo.log --fork\r\n\r\nmongosh --eval \"db.getSiblingDB('admin').createUser({user: '${MONGO_USER}', pwd: '${MONGO_USER_PASS}', roles: ['root']})\"\r\n\r\nmongosh --eval \"db.getSiblingDB('admin').shutdownServer()\"",
|
||||||
|
"container": "mongo:6-focal",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Mongo Admin Username",
|
||||||
|
"description": "The MongoDB Admin user",
|
||||||
|
"env_variable": "MONGO_USER",
|
||||||
|
"default_value": "admin",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Mongo Admin Password",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "MONGO_USER_PASS",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# Rethinkdb
|
||||||
|
|
||||||
|
## [Website](https://rethinkdb.com/)
|
||||||
|
|
||||||
|
The open-source database for the realtime web
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- The web dashboard by default is disabled (remove the ` --no-http-admin` flag from startup to enable).
|
||||||
|
- It defaults bind to 0.0.0.0 what is all interfaces so it is public availble.
|
||||||
|
- On first start a admin pasword is randomly generated.
|
||||||
|
|
||||||
|
|
||||||
|
### Server Ports
|
||||||
|
|
||||||
|
Ports required to run the server in a table format.
|
||||||
|
|
||||||
|
| Port | default |
|
||||||
|
|---------|---------|
|
||||||
|
| cluster | 25567 |
|
||||||
|
| driver | 25568 |
|
||||||
|
| http | 25569 |
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2022-11-04T19:18:22+01:00",
|
||||||
|
"name": "rethinkdb",
|
||||||
|
"author": "josdekurk@gmail.com",
|
||||||
|
"description": "The open-source database for the realtime web",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"Debian": "ghcr.io\/parkervcp\/yolks:debian"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": ".\/rethinkdb --bind 0.0.0.0 --cluster-port {{SERVER_PORT}} --driver-port {{DRIVER_PORT}} --http-port {{HTTP_PORT}} --initial-password auto --no-http-admin",
|
||||||
|
"config": {
|
||||||
|
"files": "{}",
|
||||||
|
"startup": "{\r\n \"done\": \"Server ready\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "^C"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y wget tar binutils xz-utils\r\n\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n\r\nmkdir -p \/mnt\/server\r\n\r\ncd \/tmp\r\nwget https:\/\/download.rethinkdb.com\/repository\/debian-bullseye\/pool\/r\/rethinkdb\/rethinkdb_${VERSION}~0bullseye_${ARCH}.deb -O rethinkdb.deb\r\n\r\nar xv rethinkdb.deb\r\n\r\ntar xvf data.tar.xz\r\n\r\nmv \/tmp\/usr\/bin\/rethinkdb \/mnt\/server\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
|
||||||
|
"container": "debian:bullseye-slim",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Version",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "VERSION",
|
||||||
|
"default_value": "2.4.2",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Driver port",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "DRIVER_PORT",
|
||||||
|
"default_value": "25568",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "required|string|max:10",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Http port",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "HTTP_PORT",
|
||||||
|
"default_value": "25569",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "required|string|max:10",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,13 +1,18 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1"
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2020-03-04T11:05:29-05:00",
|
"exported_at": "2022-07-11T13:17:43+02:00",
|
||||||
"name": "Redis",
|
"name": "Redis",
|
||||||
"author": "parker@parkervcp.com",
|
"author": "parker@parkervcp.com",
|
||||||
"description": "Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams.",
|
"description": "Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams.",
|
||||||
"image": "quay.io\/parkervcp\/pterodactyl-images:db_redis",
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"ghcr.io\/parkervcp\/yolks:redis_5": "ghcr.io\/parkervcp\/yolks:redis_5"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
"startup": "redis-server --bind 0.0.0.0 --port {{SERVER_PORT}} --requirepass {{SERVER_PASSWORD}} --maxmemory {{SERVER_MEMORY}}mb --daemonize yes && redis-cli -p {{SERVER_PORT}} -a {{SERVER_PASSWORD}} && redis-cli -p {{SERVER_PORT}} -a {{SERVER_PASSWORD}} shutdown save",
|
"startup": "redis-server --bind 0.0.0.0 --port {{SERVER_PORT}} --requirepass {{SERVER_PASSWORD}} --maxmemory {{SERVER_MEMORY}}mb --daemonize yes && redis-cli -p {{SERVER_PORT}} -a {{SERVER_PASSWORD}} && redis-cli -p {{SERVER_PORT}} -a {{SERVER_PASSWORD}} shutdown save",
|
||||||
"config": {
|
"config": {
|
||||||
"files": "{}",
|
"files": "{}",
|
||||||
@@ -28,9 +33,10 @@
|
|||||||
"description": "The password redis should use to secure the server.",
|
"description": "The password redis should use to secure the server.",
|
||||||
"env_variable": "SERVER_PASSWORD",
|
"env_variable": "SERVER_PASSWORD",
|
||||||
"default_value": "P@55w0rd",
|
"default_value": "P@55w0rd",
|
||||||
"user_viewable": 1,
|
"user_viewable": true,
|
||||||
"user_editable": 1,
|
"user_editable": true,
|
||||||
"rules": "required|string"
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,10 @@
|
|||||||
|
|
||||||
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker.
|
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker.
|
||||||
|
|
||||||
|
## Server Startup
|
||||||
|
|
||||||
|
You must first authenticate before trying to execute commands, to do this run `AUTH <YOUR_PASSWORD_HERE>` (without the `<>`). This should be the same as the password set in the `SERVER_PASSWORD` variable.
|
||||||
|
|
||||||
## Minimum RAM warning
|
## Minimum RAM warning
|
||||||
|
|
||||||
It's recommended to have 4gb of RAM for redis
|
It's recommended to have 4gb of RAM for redis
|
||||||
|
|||||||
@@ -1,14 +1,19 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1"
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2020-09-28T21:07:40-04:00",
|
"exported_at": "2022-07-11T13:18:27+02:00",
|
||||||
"name": "Redis-6",
|
"name": "Redis-6",
|
||||||
"author": "parker@parkervcp.com",
|
"author": "parker@parkervcp.com",
|
||||||
"description": "Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams.",
|
"description": "Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams.",
|
||||||
"image": "quay.io\/parkervcp\/pterodactyl-images:db_redis-6",
|
"features": null,
|
||||||
"startup": "\/usr\/local\/bin\/redis-server \/home\/container\/redis.conf --save 60 1 --dir \/home\/container\/ --bind 0.0.0.0 --port {{SERVER_PORT}} --requirepass {{SERVER_PASSWORD}} --maxmemory {{SERVER_MEMORY}}mb --daemonize yes && redis-cli -p {{SERVER_PORT}} -a {{SERVER_PASSWORD}}; redis-cli -p {{SERVER_PORT}} -a {{SERVER_PASSWORD}} shutdown save",
|
"docker_images": {
|
||||||
|
"ghcr.io\/parkervcp\/yolks:redis_6": "ghcr.io\/parkervcp\/yolks:redis_6"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": "\/usr\/local\/bin\/redis-server \/home\/container\/redis.conf --save 60 1 --dir \/home\/container\/ --bind 0.0.0.0 --port {{SERVER_PORT}} --requirepass {{SERVER_PASSWORD}} --maxmemory {{SERVER_MEMORY}}mb --daemonize yes && redis-cli -p {{SERVER_PORT}}; redis-cli -p {{SERVER_PORT}} -a {{SERVER_PASSWORD}} shutdown save",
|
||||||
"config": {
|
"config": {
|
||||||
"files": "{}",
|
"files": "{}",
|
||||||
"startup": "{\r\n \"done\": \"Configuration loaded\"\r\n}",
|
"startup": "{\r\n \"done\": \"Configuration loaded\"\r\n}",
|
||||||
@@ -28,9 +33,10 @@
|
|||||||
"description": "The password redis should use to secure the server.",
|
"description": "The password redis should use to secure the server.",
|
||||||
"env_variable": "SERVER_PASSWORD",
|
"env_variable": "SERVER_PASSWORD",
|
||||||
"default_value": "P@55w0rd",
|
"default_value": "P@55w0rd",
|
||||||
"user_viewable": 1,
|
"user_viewable": true,
|
||||||
"user_editable": 1,
|
"user_editable": true,
|
||||||
"rules": "required|string"
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# Redis
|
||||||
|
|
||||||
|
## From their [Website](https://redis.io/)
|
||||||
|
|
||||||
|
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker.
|
||||||
|
|
||||||
|
## Server Startup
|
||||||
|
|
||||||
|
You must first authenticate before trying to execute commands, to do this run `AUTH <YOUR_PASSWORD_HERE>` (without the `<>`). This should be the same as the password set in the `SERVER_PASSWORD` variable.
|
||||||
|
|
||||||
|
## Minimum RAM warning
|
||||||
|
|
||||||
|
It's recommended to have 4gb of RAM for redis
|
||||||
|
|
||||||
|
See here <https://docs.redislabs.com/latest/rs/administering/designing-production/hardware-requirements/>
|
||||||
|
|
||||||
|
## Server Ports
|
||||||
|
|
||||||
|
Ports required to run the server in a table format.
|
||||||
|
|
||||||
|
| Port | default |
|
||||||
|
|---------|---------|
|
||||||
|
| Server | 6379 |
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2022-10-02T16:30:14+01:00",
|
||||||
|
"name": "Redis-7",
|
||||||
|
"author": "parker@parkervcp.com",
|
||||||
|
"description": "Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams.",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"ghcr.io\/parkervcp\/yolks:redis_7": "ghcr.io\/parkervcp\/yolks:redis_7"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": "\/usr\/local\/bin\/redis-server \/home\/container\/redis.conf --save 60 1 --dir \/home\/container\/ --bind 0.0.0.0 --port {{SERVER_PORT}} --requirepass {{SERVER_PASSWORD}} --maxmemory {{SERVER_MEMORY}}mb --daemonize yes && redis-cli -p {{SERVER_PORT}}; redis-cli -p {{SERVER_PORT}} -a {{SERVER_PASSWORD}} shutdown save",
|
||||||
|
"config": {
|
||||||
|
"files": "{}",
|
||||||
|
"startup": "{\r\n \"done\": \"Configuration loaded\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "^C"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!\/bin\/ash\r\n# Redis Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napk add --no-cache curl\r\n\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\nif [ ! -d \/mnt\/server\/redis.conf ]; then\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/redis\/redis-7\/redis.conf -o redis.conf\r\nfi\r\n\r\nsleep 5\r\necho -e \"Install complete. Made this to not have issues.\"",
|
||||||
|
"container": "alpine:3.10",
|
||||||
|
"entrypoint": "ash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Redis Password",
|
||||||
|
"description": "The password redis should use to secure the server.",
|
||||||
|
"env_variable": "SERVER_PASSWORD",
|
||||||
|
"default_value": "P@55w0rd",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
+10
-8
@@ -1,17 +1,17 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1",
|
"version": "PTDL_v2",
|
||||||
"update_url": null
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2022-05-08T21:54:05+02:00",
|
"exported_at": "2023-12-12T15:32:12+01:00",
|
||||||
"name": "Postgres",
|
"name": "Postgres 14",
|
||||||
"author": "parker@parkervcp.com",
|
"author": "parker@parkervcp.com",
|
||||||
"description": "A default Postgres install that is not really editable.",
|
"description": "A default Postgres install that is not really editable.",
|
||||||
"features": null,
|
"features": null,
|
||||||
"images": [
|
"docker_images": {
|
||||||
"ghcr.io\/parkervcp\/yolks:postgres_14"
|
"ghcr.io\/parkervcp\/yolks:postgres_14": "ghcr.io\/parkervcp\/yolks:postgres_14"
|
||||||
],
|
},
|
||||||
"file_denylist": [],
|
"file_denylist": [],
|
||||||
"startup": "postgres -D \/home\/container\/postgres_db\/",
|
"startup": "postgres -D \/home\/container\/postgres_db\/",
|
||||||
"config": {
|
"config": {
|
||||||
@@ -35,7 +35,8 @@
|
|||||||
"default_value": "pterodactyl",
|
"default_value": "pterodactyl",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": false,
|
"user_editable": false,
|
||||||
"rules": "required|string|max:20"
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Superuser Password",
|
"name": "Superuser Password",
|
||||||
@@ -44,7 +45,8 @@
|
|||||||
"default_value": "Pl3453Ch4n63M3!",
|
"default_value": "Pl3453Ch4n63M3!",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": false,
|
"user_editable": false,
|
||||||
"rules": "required|string|max:20"
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2023-12-12T15:33:25+01:00",
|
||||||
|
"name": "Postgres 16",
|
||||||
|
"author": "parker@parkervcp.com",
|
||||||
|
"description": "A default Postgres install that is not really editable.",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"ghcr.io\/parkervcp\/yolks:postgres_16": "ghcr.io\/parkervcp\/yolks:postgres_16"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": "postgres -D \/home\/container\/postgres_db\/",
|
||||||
|
"config": {
|
||||||
|
"files": "{\r\n \"postgres_db\/postgresql.conf\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"#port =\": \"port = {{server.build.default.port}}\",\r\n \"#external_pid_file =\": \"external_pid_file = '\/home\/container\/postgres_db\/run\/postgres.pid'\",\r\n \"#unix_socket_directories =\": \"unix_socket_directories = '\/home\/container\/postgres_db\/run\/'\"\r\n }\r\n }\r\n}",
|
||||||
|
"startup": "{\r\n \"done\": \"database system is ready to accept connections\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "^C"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#! \/bin\/ash\r\nadduser -D -h \/home\/container container\r\n\r\nchown -R container: \/mnt\/server\/\r\n\r\nsu container -c 'initdb -D \/mnt\/server\/postgres_db\/ -A md5 -U \"$PGUSER\" --pwfile=<(echo \"$PGPASSWORD\")'\r\n\r\nmkdir -p \/mnt\/server\/postgres_db\/run\/\r\n\r\n## Add default \"allow from all\" auth rule to pg_hba\r\nif ! grep -q \"# Custom rules\" \"\/mnt\/server\/postgres_db\/pg_hba.conf\"; then\r\n echo -e \"# Custom rules\\nhost all all 0.0.0.0\/0 md5\" >> \"\/mnt\/server\/postgres_db\/pg_hba.conf\"\r\nfi\r\n\r\necho -e \"Done\"",
|
||||||
|
"container": "postgres:16-alpine",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Superuser Name",
|
||||||
|
"description": "The username for the postgres superuser",
|
||||||
|
"env_variable": "PGUSER",
|
||||||
|
"default_value": "pterodactyl",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Superuser Password",
|
||||||
|
"description": "The postgres super user password with a strong default.\r\nYou should be generating new ones for each server.\r\nIf you don't then users can hit other users DB's",
|
||||||
|
"env_variable": "PGPASSWORD",
|
||||||
|
"default_value": "Pl3453Ch4n63M3!",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
+9
-11
@@ -18,17 +18,15 @@ The description of the server usually provided by the game/server maker.
|
|||||||
<!--Make a note if the user needs to get any keys or other items to run/use the server-->
|
<!--Make a note if the user needs to get any keys or other items to run/use the server-->
|
||||||
Due to rate limiting the console on the panel, it cannot keep up with the game console and the build will complete before the panel console may show it. Reloading the console will load it to the latest part of the log.
|
Due to rate limiting the console on the panel, it cannot keep up with the game console and the build will complete before the panel console may show it. Reloading the console will load it to the latest part of the log.
|
||||||
|
|
||||||
## Minimum RAM warning
|
## Installation/System Requirements
|
||||||
|
<!--Make changes to reflect the server minimum/recommended hardware specs-->
|
||||||
Minimum required memory to run the server.
|
| | Bare Minimum | Recommended |
|
||||||
<!--Example: 2GB is recommended. 4GB+ is preferred-->
|
|---------|---------|---------|
|
||||||
|
| Processor | *Main info (32/64 bit or ARM support)* | *More info about egg's preferred processor* |
|
||||||
## Minumim Sorage warning
|
| RAM | *Minimum amount of RAM (in MiB/GiB)* | *Recommended amount of RAM (in MiB/GiB)* |
|
||||||
|
| Storage | *Minimum amount of Storage (in MiB/GiB)* | *Recommended amount of Storage (in MiB/GiB)* |
|
||||||
Minimum required storage to run the server.
|
| Network | *Minimum network speed (in Mbit/s)* | *Recommended network speed (in Mbit/s)* |
|
||||||
<!--Example: 10GB is recommended. 25GB+ is preferred-->
|
| Game Ownership | *Can the server start without it?* | *Is it needed for any other features?* |
|
||||||
|
|
||||||
<!--Make a note if the install script would require more then the above amounts-->
|
|
||||||
|
|
||||||
## Server Ports
|
## Server Ports
|
||||||
|
|
||||||
|
|||||||
@@ -1,28 +1,28 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1",
|
"version": "PTDL_v2",
|
||||||
"update_url": null
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2021-11-13T13:06:21-08:00",
|
"exported_at": "2023-01-31T11:59:34+01:00",
|
||||||
"name": "Foundry VTT",
|
"name": "Foundry VTT",
|
||||||
"author": "pterodactyl@demi.cloud",
|
"author": "pterodactyl@demi.cloud",
|
||||||
"description": "Foundry VTT is a standalone application built for experiencing multiplayer tabletop RPGs using a feature-rich and modern self-hosted application where your players connect directly through the browser.",
|
"description": "Foundry VTT is a standalone application built for experiencing multiplayer tabletop RPGs using a feature-rich and modern self-hosted application where your players connect directly through the browser.",
|
||||||
"features": null,
|
"features": null,
|
||||||
"images": [
|
"docker_images": {
|
||||||
"ghcr.io\/parkervcp\/yolks:nodejs_17"
|
"ghcr.io\/parkervcp\/yolks:nodejs_18": "ghcr.io\/parkervcp\/yolks:nodejs_18"
|
||||||
],
|
},
|
||||||
"file_denylist": [],
|
"file_denylist": [],
|
||||||
"startup": "node .\/app\/resources\/app\/main.js --dataPath=\"\/home\/container\/data\"",
|
"startup": "node .\/app\/resources\/app\/main.js --dataPath=\"\/home\/container\/data\"",
|
||||||
"config": {
|
"config": {
|
||||||
"files": "{\r\n \"data\/Config\/options.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"port\": \"{{server.build.default.port}}\",\r\n \"language\": \"{{server.build.env.FOUNDRY_LANGUAGE}}\",\r\n \"updateChannel\": \"{{server.build.env.UPDATE_CHANNEL}}\"\r\n }\r\n }\r\n}",
|
"files": "{\r\n \"data\/Config\/options.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"port\": \"{{server.build.default.port}}\",\r\n \"language\": \"{{server.build.env.FOUNDRY_LANGUAGE}}\",\r\n \"updateChannel\": \"{{server.build.env.UPDATE_CHANNEL}}\"\r\n }\r\n }\r\n}",
|
||||||
"startup": "{\r\n \"done\": \"Server started and listening on port\"\r\n}",
|
"startup": "{\r\n \"done\": \"Server started and listening on port\"\r\n}",
|
||||||
"logs": "{}",
|
"logs": "{}",
|
||||||
"stop": "^c"
|
"stop": "^C"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"installation": {
|
"installation": {
|
||||||
"script": "#!\/bin\/bash\r\n# FoundryVTT install script\r\n#\r\n# Server Files: \/mnt\/server\r\ndeclare -r DIR_ROOT=\"\/mnt\/server\"\r\ndeclare -r DIR_APP=\"${DIR_ROOT}\/app\"\r\ndeclare -r DIR_DATA=\"${DIR_ROOT}\/data\"\r\ndeclare -r ZIP_FILE_NAME=\"foundryvtt.zip\"\r\n\r\nmain() {\r\n apt update\r\n apt install -y unzip\r\n\r\n printf \"\\nBuilding directory structure...\\n\"\r\n mkdir -p \"${DIR_ROOT}\/data\/Config\"\r\n mkdir -p \"${DIR_ROOT}\/app\"\r\n # shellcheck disable=SC2164\r\n cd \"${DIR_APP}\"\r\n printf \"\\nDownloading FoundryVTT files...\\n\"\r\n wget \"${TIMED_URL}\" -O \"${ZIP_FILE_NAME}\"\r\n printf \"\\nunzipping FoundryVTT files...\\n\"\r\n unzip \"${ZIP_FILE_NAME}\" -d \"${DIR_APP}\"\r\n rm \"${ZIP_FILE_NAME}\"\r\n\r\n printf \"\\nGenerating default configuration...\\n\"\r\n cat <<EOF >\"${DIR_DATA}\/Config\/options.json\"\r\n{\r\n \"port\": 30000,\r\n \"upnp\": false,\r\n \"fullscreen\": false,\r\n \"hostname\": null,\r\n \"localHostname\": null,\r\n \"routePrefix\": null,\r\n \"sslCert\": null,\r\n \"sslKey\": null,\r\n \"awsConfig\": null,\r\n \"dataPath\": \"\/home\/container\/data\",\r\n \"passwordSalt\": null,\r\n \"proxySSL\": false,\r\n \"proxyPort\": null,\r\n \"minifyStaticFiles\": true,\r\n \"updateChannel\": \"release\",\r\n \"language\": \"en.core\",\r\n \"upnpLeaseDuration\": null,\r\n \"world\": null\r\n} \r\nEOF\r\n printf \"Installation Done.\\n\"\r\n}\r\nmain \"@\"",
|
"script": "#!\/bin\/bash\r\n# FoundryVTT install script\r\n#\r\n# Server Files: \/mnt\/server\r\ndeclare -r DIR_ROOT=\"\/mnt\/server\"\r\ndeclare -r DIR_APP=\"${DIR_ROOT}\/app\"\r\ndeclare -r DIR_DATA=\"${DIR_ROOT}\/data\"\r\ndeclare -r ZIP_FILE_NAME=\"foundryvtt.zip\"\r\n\r\nmain() {\r\n apt update\r\n apt install -y unzip\r\n\r\n printf \"\\nBuilding directory structure...\\n\"\r\n mkdir -p \"${DIR_ROOT}\/data\/Config\"\r\n mkdir -p \"${DIR_ROOT}\/app\"\r\n # shellcheck disable=SC2164\r\n cd \"${DIR_APP}\"\r\n printf \"\\nDownloading FoundryVTT files...\\n\"\r\n wget \"${TIMED_URL}\" -O \"${ZIP_FILE_NAME}\"\r\n printf \"\\nunzipping FoundryVTT files...\\n\"\r\n unzip \"${ZIP_FILE_NAME}\" -d \"${DIR_APP}\"\r\n #rm \"${ZIP_FILE_NAME}\"\r\n\r\n printf \"\\nGenerating default configuration...\\n\"\r\n cat <<EOF >\"${DIR_DATA}\/Config\/options.json\"\r\n{\r\n \"port\": 30000,\r\n \"upnp\": false,\r\n \"fullscreen\": false,\r\n \"hostname\": null,\r\n \"localHostname\": null,\r\n \"routePrefix\": null,\r\n \"sslCert\": null,\r\n \"sslKey\": null,\r\n \"awsConfig\": null,\r\n \"dataPath\": \"\/home\/container\/data\",\r\n \"passwordSalt\": null,\r\n \"proxySSL\": false,\r\n \"proxyPort\": null,\r\n \"minifyStaticFiles\": true,\r\n \"updateChannel\": \"release\",\r\n \"language\": \"en.core\",\r\n \"upnpLeaseDuration\": null,\r\n \"world\": null\r\n} \r\nEOF\r\n printf \"Installation Done.\\n\"\r\n}\r\nmain \"@\"",
|
||||||
"container": "ghcr.io\/pterodactyl\/installers:debian",
|
"container": "ghcr.io\/pterodactyl\/installers:debian",
|
||||||
"entrypoint": "bash"
|
"entrypoint": "bash"
|
||||||
}
|
}
|
||||||
@@ -35,7 +35,8 @@
|
|||||||
"default_value": "",
|
"default_value": "",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|url"
|
"rules": "required|url",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Language",
|
"name": "Language",
|
||||||
@@ -44,7 +45,8 @@
|
|||||||
"default_value": "en.core",
|
"default_value": "en.core",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "string|max:20"
|
"rules": "string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Update Channel",
|
"name": "Update Channel",
|
||||||
@@ -53,7 +55,8 @@
|
|||||||
"default_value": "release",
|
"default_value": "release",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "string|max:256"
|
"rules": "string|max:256",
|
||||||
|
"field_type": "text"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
+86
-17
@@ -10,11 +10,22 @@
|
|||||||
* [BeamMP Server](beamng/beammp)
|
* [BeamMP Server](beamng/beammp)
|
||||||
* [KissMP](beamng/kissmp)
|
* [KissMP](beamng/kissmp)
|
||||||
|
|
||||||
[ClassiCube](game_eggs/classicube)
|
[ClassiCube](classicube)
|
||||||
|
|
||||||
* [MCGalaxy](game_eggs/classicube/mcgalaxy)
|
* [MCGalaxy](classicube/mcgalaxy)
|
||||||
|
|
||||||
[Call of Duty 4X](cod/cod4x)
|
[Clone Hero](clone_hero)
|
||||||
|
|
||||||
|
[CS2D](cs2d)
|
||||||
|
|
||||||
|
[Cube Engine](cubeengine)
|
||||||
|
* [AssaultCube](cubeengine/assaultcube)
|
||||||
|
* [Cube 2: Sauerbraten](cubeengine/cube2)
|
||||||
|
|
||||||
|
[DDRaceNetwork](ddracenetwork/)
|
||||||
|
|
||||||
|
[Doom](doom)
|
||||||
|
* [Zandronum](doom/zandronum)
|
||||||
|
|
||||||
[ET Legacy](enemy_territory/etlegacy)
|
[ET Legacy](enemy_territory/etlegacy)
|
||||||
|
|
||||||
@@ -22,6 +33,7 @@
|
|||||||
|
|
||||||
* [Vanilla](factorio/factorio)
|
* [Vanilla](factorio/factorio)
|
||||||
* [ModUpdate](factorio/factorio-modupdate)
|
* [ModUpdate](factorio/factorio-modupdate)
|
||||||
|
* [Clusterio](factorio/clusterio)
|
||||||
|
|
||||||
[FTL: Tachyon](ftl/tachyon)
|
[FTL: Tachyon](ftl/tachyon)
|
||||||
|
|
||||||
@@ -29,16 +41,24 @@
|
|||||||
|
|
||||||
* GTA V
|
* GTA V
|
||||||
* [FiveM](gta/fivem)
|
* [FiveM](gta/fivem)
|
||||||
|
* [ragecoop](gta/ragecoop)
|
||||||
* [RageMP](gta/ragemp)
|
* [RageMP](gta/ragemp)
|
||||||
* [alt:V](gta/altv)
|
* [alt:V](gta/altv)
|
||||||
|
|
||||||
* GTA SA
|
* GTA SA
|
||||||
* [Multi Theft Auto](gta/mtasa)
|
* [Multi Theft Auto](gta/mtasa)
|
||||||
* [SA-MP](gta/samp)
|
* [SA-MP](gta/samp)
|
||||||
|
* [OpenMp](gta/openmp)
|
||||||
|
|
||||||
* GTA
|
* GTA
|
||||||
* [GTAC](gta/gtac)
|
* [GTAC](gta/gtac)
|
||||||
|
|
||||||
|
[Hogwarp](hogwarp)
|
||||||
|
|
||||||
|
[Kerbal Space Program](ksp)
|
||||||
|
|
||||||
|
[Los Angeles Crimes](losangelescrimes)
|
||||||
|
|
||||||
[League Sandbox](leaguesandbox)
|
[League Sandbox](leaguesandbox)
|
||||||
|
|
||||||
[Mindustry](mindustry)
|
[Mindustry](mindustry)
|
||||||
@@ -48,23 +68,24 @@
|
|||||||
* [Bedrock](minecraft/bedrock) Servers for Bedrock Minecraft (Windows 10, mobile, console)
|
* [Bedrock](minecraft/bedrock) Servers for Bedrock Minecraft (Windows 10, mobile, console)
|
||||||
* [Bedrock](minecraft/bedrock/bedrock)
|
* [Bedrock](minecraft/bedrock/bedrock)
|
||||||
* [gomint](minecraft/bedrock/gomint)
|
* [gomint](minecraft/bedrock/gomint)
|
||||||
|
* [LiteLoaderBDS](bedrock/LiteLoader-bedrock)
|
||||||
* [Nukkit](minecraft/bedrock/nukkit)
|
* [Nukkit](minecraft/bedrock/nukkit)
|
||||||
* [PocketMine MP](minecraft/bedrock/pocketmine_mp)
|
* [PocketMine MP](minecraft/bedrock/pocketmine_mp)
|
||||||
|
|
||||||
* [Java](minecraft/java) Servers for Java Minecraft
|
* [Java](minecraft/java) Servers for Java Minecraft
|
||||||
* [Airplane](minecraft/java/airplane)
|
* [CurseForge](minecraft/java/curseforge)
|
||||||
* [Cuberite](minecraft/java/cuberite)
|
* [Cuberite](minecraft/java/cuberite)
|
||||||
* [CusreForge Generic](minecraft/java/forge/curseforge-generic)
|
|
||||||
* [Fabric](minecraft/java/fabric)
|
* [Fabric](minecraft/java/fabric)
|
||||||
* [Feather](minecraft/java/feather)
|
* [Feather](minecraft/java/feather)
|
||||||
|
* [Feed The Beast](minecraft/java/ftb)
|
||||||
* [Forge](minecraft/java/forge)
|
* [Forge](minecraft/java/forge)
|
||||||
* [Glowstone](minecraft/java/glowstone)
|
* [Glowstone](minecraft/java/glowstone)
|
||||||
* [Feed The Beast](minecraft/java/ftb)
|
* [Limbo](minecraft/java/limbo)
|
||||||
* [Krypton](/minecraft/java/krypton)
|
|
||||||
* [Magma](minecraft/java/magma)
|
* [Magma](minecraft/java/magma)
|
||||||
* [Mohist](minecraft/java/mohist)
|
* [Mohist](minecraft/java/mohist)
|
||||||
* [NanoLimbo](/minecraft/java/nanolimbo)
|
* [NanoLimbo](minecraft/java/nanolimbo)
|
||||||
* [Paper](minecraft/java/paper)
|
* [Paper](minecraft/java/paper)
|
||||||
|
* [Folia](minecraft/java/folia)
|
||||||
* [Purpur](minecraft/java/purpur)
|
* [Purpur](minecraft/java/purpur)
|
||||||
* [Spigot](minecraft/java/spigot)
|
* [Spigot](minecraft/java/spigot)
|
||||||
* [SpongeForge](minecraft/java/spongeforge)
|
* [SpongeForge](minecraft/java/spongeforge)
|
||||||
@@ -72,19 +93,19 @@
|
|||||||
* [Technic](minecraft/java/technic)
|
* [Technic](minecraft/java/technic)
|
||||||
* [VanillaCord](minecraft/java/vanillacord)
|
* [VanillaCord](minecraft/java/vanillacord)
|
||||||
|
|
||||||
|
* [Crossplay](minecraft/crossplay/) servers for crossplay between Bedrock and Java edition
|
||||||
|
* [Purpur-GeyserMC-Floodgate](minecraft/crossplay/purpur-geysermc-floodgate/)
|
||||||
|
|
||||||
* [Proxies](minecraft/proxy) Minecraft Server Proxies
|
* [Proxies](minecraft/proxy) Minecraft Server Proxies
|
||||||
|
* [Java](minecraft/proxy/java)
|
||||||
|
* [Travertine](minecraft/proxy/java/travertine)
|
||||||
|
* [Velocity](minecraft/proxy/java/velocity)
|
||||||
|
* [Waterfall](minecraft/proxy/java/waterfall)
|
||||||
* [Bedrock](minecraft/proxy/bedrock)
|
* [Bedrock](minecraft/proxy/bedrock)
|
||||||
* [Waterdog PE](minecraft/proxy/bedrock/waterdog_pe)
|
* [Waterdog PE](minecraft/proxy/bedrock/waterdog_pe)
|
||||||
* [Cross Platform](minecraft/proxy/cross_platform)
|
* [Cross Platform](minecraft/proxy/cross_platform)
|
||||||
* [GeyserMC](minecraft/proxy/cross_platform/geyser)
|
* [GeyserMC](minecraft/proxy/cross_platform/geyser)
|
||||||
* [Waterdog](minecraft/proxy/cross_platform/waterdog)
|
* [Waterdog](minecraft/proxy/cross_platform/waterdog)
|
||||||
* [Java](minecraft/proxy/java)
|
|
||||||
* [FlameCord](minecraft/proxy/java/flamecord)
|
|
||||||
* [Travertine](minecraft/proxy/java/travertine)
|
|
||||||
* [TyphoonLimbo](minecraft/proxy/java/typhoonlimbo)
|
|
||||||
* [Velocity](minecraft/proxy/java/velocity)
|
|
||||||
* [VIAaas](minecraft/proxy/java/viaaas)
|
|
||||||
* [Waterfall](minecraft/proxy/java/waterfall)
|
|
||||||
|
|
||||||
[Minetest](minetest) (including MTG)
|
[Minetest](minetest) (including MTG)
|
||||||
|
|
||||||
@@ -100,67 +121,112 @@
|
|||||||
|
|
||||||
* [RedM](rdr/redm)
|
* [RedM](rdr/redm)
|
||||||
|
|
||||||
|
[Spacestation 14](spacestation_14)
|
||||||
|
|
||||||
|
[Rimworld](rimworld)
|
||||||
|
|
||||||
|
* [Open World](rimworld/open_world)
|
||||||
|
|
||||||
[Starmade](starmade)
|
[Starmade](starmade)
|
||||||
|
|
||||||
[SteamCMD Servers](steamcmd_servers) These eggs use SteamCMD to install
|
[SteamCMD Servers](steamcmd_servers) These eggs use SteamCMD to install
|
||||||
|
|
||||||
* [7 Days to Die](steamcmd_servers/7_days_to_die)
|
* [7 Days to Die](steamcmd_servers/7_days_to_die)
|
||||||
|
* [ARK: Survival Ascended](steamcmd_servers/ark_survival_ascended)
|
||||||
* [ARK: Survival Evolved](steamcmd_servers/ark_survival_evolved)
|
* [ARK: Survival Evolved](steamcmd_servers/ark_survival_evolved)
|
||||||
* [Arma](steamcmd_servers/arma)
|
* [Arma](steamcmd_servers/arma)
|
||||||
* [Arma 3](steamcmd_servers/arma/arma3)
|
* [Arma 3](steamcmd_servers/arma/arma3)
|
||||||
* [Arma Reforger](steamcmd_servers/arma/arma_reforger)
|
* [Arma Reforger](steamcmd_servers/arma/arma_reforger)
|
||||||
* [Assetto Corsa](steamcmd_servers/assetto_corsa)
|
* [Assetto Corsa](steamcmd_servers/assetto_corsa)
|
||||||
|
* [Astro Colony](steamcmd_servers/astro_colony)
|
||||||
|
* [Astroneer](steamcmd_servers/astroneer)
|
||||||
* [Avorion](steamcmd_servers/avorion)
|
* [Avorion](steamcmd_servers/avorion)
|
||||||
* [Barotrauma](steamcmd_servers/barotrauma)
|
* [Barotrauma](steamcmd_servers/barotrauma)
|
||||||
|
* [BATTALION: Legacy](steamcmd_servers/battalion_legacy)
|
||||||
|
* [Black Mesa](steamcmd_servers/black_mesa)
|
||||||
* [Citadel: Forged with Fire](steamcmd_servers/citadel)
|
* [Citadel: Forged with Fire](steamcmd_servers/citadel)
|
||||||
* [Conan Exiles](steamcmd_servers/conan_exiles)
|
* [Conan Exiles](steamcmd_servers/conan_exiles)
|
||||||
|
* [Core Keeper](steamcmd_servers/core_keeper)
|
||||||
|
* [Counter-Strike](steamcmd_servers/counter_strike/)
|
||||||
|
* [Counter-Strike: Source](steamcmd_servers/counter_strike/counter_strike_source/)
|
||||||
|
* [Craftopia](game_eggs/steamcmd_servers/craftopia)
|
||||||
* [CryoFall](steamcmd_servers/cryofall)
|
* [CryoFall](steamcmd_servers/cryofall)
|
||||||
* [DayZ (Experimental)](steamcmd_servers/dayz-experimental)
|
* [DayZ (Experimental)](steamcmd_servers/dayz-experimental)
|
||||||
* [Don't Starve Together](steamcmd_servers/dont_starve)
|
* [Don't Starve Together](steamcmd_servers/dont_starve)
|
||||||
* [ECO](steamcmd_servers/eco)
|
* [ECO](steamcmd_servers/eco)
|
||||||
|
* [Empyrion - Galactic Survival](steamcmd_servers/empyrion)
|
||||||
* [Fistful of Frags](steamcmd_servers/fof)
|
* [Fistful of Frags](steamcmd_servers/fof)
|
||||||
|
* [Frozen Flame](steamcmd_servers/frozen_flame)
|
||||||
|
* [Ground Branch](steamcmd_servers/ground_branch)
|
||||||
* [HLDS Server](steamcmd_servers/hlds_server)
|
* [HLDS Server](steamcmd_servers/hlds_server)
|
||||||
|
* [HLDS Vanilla](steamcmd_servers/hlds_server/vanilla)
|
||||||
|
* [ReHLDS](steamcmd_servers/hlds_server/rehlds)
|
||||||
* [Holdfast: Nations At War](steamcmd_servers/holdfast)
|
* [Holdfast: Nations At War](steamcmd_servers/holdfast)
|
||||||
* [Hurtworld](steamcmd_servers/hurtworld)
|
* [Hurtworld](steamcmd_servers/hurtworld)
|
||||||
|
* [Icarus](steamcmd_servers/icarus)
|
||||||
* [Insurgency: Sandstorm](steamcmd_servers/insurgency_sandstorm)
|
* [Insurgency: Sandstorm](steamcmd_servers/insurgency_sandstorm)
|
||||||
|
* [iosoccer](steamcmd_servers/iosoccer)
|
||||||
* [Killing Floor 2](steamcmd_servers/killing_floor_2)
|
* [Killing Floor 2](steamcmd_servers/killing_floor_2)
|
||||||
* [Left 4 Dead](steamcmd_servers/left4dead)
|
* [Left 4 Dead](steamcmd_servers/left4dead)
|
||||||
* [Left 4 Dead 2](steamcmd_servers/left4dead_2)
|
* [Left 4 Dead 2](steamcmd_servers/left4dead_2)
|
||||||
* [Modiverse](steamcmd_servers/modiverse)
|
* [Modiverse](steamcmd_servers/modiverse)
|
||||||
* [Mordhau](steamcmd_servers/mordhau)
|
* [Mordhau](steamcmd_servers/mordhau)
|
||||||
|
* [Mount & Blade II: Bannerlord](steamcmd_servers/mount_blade_II_bannerlord)
|
||||||
|
* [Neos VR](steamcmd_servers/neosvr)
|
||||||
* [No More Room in Hell](steamcmd_servers/nmrih)
|
* [No More Room in Hell](steamcmd_servers/nmrih)
|
||||||
|
* [No One Survived](steamcmd_servers/no_one_survived)
|
||||||
* [Onset](steamcmd_servers/onset)
|
* [Onset](steamcmd_servers/onset)
|
||||||
|
* [Open Fortress](steamcmd_servers/open_fortress)
|
||||||
|
* [Operation Harsh Doorstop](steamcmd_servers/operation_harsh_doorstop)
|
||||||
* [Pavlov VR](steamcmd_servers/pavlov_vr)
|
* [Pavlov VR](steamcmd_servers/pavlov_vr)
|
||||||
* [PixARK](steamcmd_servers/pixark)
|
* [PixARK](steamcmd_servers/pixark)
|
||||||
|
* [Portal Knights](steamcmd_servers/portal_knights)
|
||||||
* [Post Scriptum](steamcmd_servers/post_scriptum)
|
* [Post Scriptum](steamcmd_servers/post_scriptum)
|
||||||
* [Project Zomboid](steamcmd_servers/project_zomboid)
|
* [Project Zomboid](steamcmd_servers/project_zomboid)
|
||||||
* [Quake Live](steamcmd_servers/quake_live)
|
* [Quake Live](steamcmd_servers/quake_live)
|
||||||
|
* [Resonite](steamcmd_servers/resonite)
|
||||||
* [Rising World](steamcmd_servers/rising_world)
|
* [Rising World](steamcmd_servers/rising_world)
|
||||||
|
* [Legacy Java](steamcmd_servers/rising_world/legacy)
|
||||||
|
* [Unity](steamcmd_servers/rising_world/unity)
|
||||||
* [Risk Of Rain 2](steamcmd_servers/risk_of_rain_2)
|
* [Risk Of Rain 2](steamcmd_servers/risk_of_rain_2)
|
||||||
* [Rust](steamcmd_servers/rust)
|
* [Rust](steamcmd_servers/rust)
|
||||||
* [Autowipe](steamcmd_servers/rust/rust_autowipe)
|
* [Autowipe](steamcmd_servers/rust/rust_autowipe)
|
||||||
* [Staging](steamcmd_servers/rust/rust_staging)
|
* [Staging](steamcmd_servers/rust/rust_staging)
|
||||||
* [Satisfactory](steamcmd_servers/satisfactory)
|
* [Satisfactory](steamcmd_servers/satisfactory)
|
||||||
|
* [Solace Crafting](steamcmd_servers/solace_crafting)
|
||||||
* [SCP: Secret Laboratory](steamcmd_servers/scpsl)
|
* [SCP: Secret Laboratory](steamcmd_servers/scpsl)
|
||||||
* [Dedicated](steamcmd_servers/scpsl/dedicated)
|
* [Dedicated](steamcmd_servers/scpsl/dedicated)
|
||||||
* [Exiled](steamcmd_servers/scpsl/exiled)
|
* [Exiled](steamcmd_servers/scpsl/exiled)
|
||||||
* [Multiadmin](steamcmd_servers/scpsl/multiadmin)
|
|
||||||
* [Soldat](steamcmd_servers/soldat)
|
* [Soldat](steamcmd_servers/soldat)
|
||||||
|
* [Sons of the Forest](steamcmd_servers/sonsoftheforest)
|
||||||
* [Space Engineers](steamcmd_servers/space_engineers)
|
* [Space Engineers](steamcmd_servers/space_engineers)
|
||||||
|
* [default](steamcmd_servers/space_engineers/default)
|
||||||
|
* [torch](steamcmd_servers/space_engineers/torch)
|
||||||
* [Squad](steamcmd_servers/squad)
|
* [Squad](steamcmd_servers/squad)
|
||||||
* [Starbound](steamcmd_servers/starbound)
|
* [Starbound](steamcmd_servers/starbound)
|
||||||
* [Stationeers](steamcmd_servers/stationeers)
|
* [Stationeers](steamcmd_servers/stationeers)
|
||||||
* [Stormworks: Build and Rescue](steamcmd_servers/stormworks)
|
* [Stormworks: Build and Rescue](steamcmd_servers/stormworks)
|
||||||
* [Subnautica: Nitrox Mod](steamcmd_servers/subnautica_nitrox_mod)
|
* [Subnautica: Nitrox Mod](steamcmd_servers/subnautica_nitrox_mod)
|
||||||
|
* [Survive The Nights](steamcmd_servers/survive_the_nights)
|
||||||
* [Sven Co-op](steamcmd_servers/svencoop)
|
* [Sven Co-op](steamcmd_servers/svencoop)
|
||||||
|
* [Swords 'n Magic and Stuff](steamcmd_servers/swords_'n_Magic_and_Stuff)
|
||||||
* [Team Fortress 2 Classic](steamcmd_servers/team_fortress_2_classic)
|
* [Team Fortress 2 Classic](steamcmd_servers/team_fortress_2_classic)
|
||||||
* [The Forest](steamcmd_servers/the_forest)
|
* [The Forest](steamcmd_servers/the_forest)
|
||||||
|
* [The Front](steamcmd_servers/thefront)
|
||||||
|
* [The Isle](steamcmd_servers/the_isle)
|
||||||
|
* [Evrima](steamcmd_servers/the_isle/evrima)
|
||||||
* [Tower Unite](steamcmd_servers/tower_unite)
|
* [Tower Unite](steamcmd_servers/tower_unite)
|
||||||
|
* [Truck Sim](steamcmd_servers/truck-simulator)
|
||||||
|
* [American Truck Simulator](steamcmd_servers/truck-simulator/american-truck-simulator/)
|
||||||
|
* [Euro Truck Simulator 2](steamcmd_servers/truck-simulator/euro-truck-simulator2/)
|
||||||
* [Unturned](steamcmd_servers/unturned)
|
* [Unturned](steamcmd_servers/unturned)
|
||||||
* [V Rising](steamcmd_servers/v_rising)
|
* [V Rising](steamcmd_servers/v_rising)
|
||||||
|
* [V Rising Vanilla](steamcmd_servers/v_rising/v_rising_vanilla)
|
||||||
|
* [V Rising BepInex](steamcmd_servers/v_rising/v_rising_bepinex)
|
||||||
* [Valheim](steamcmd_servers/valheim)
|
* [Valheim](steamcmd_servers/valheim)
|
||||||
* [Valheim Plus Mod](steamcmd_servers/valheim/valheim_plus)
|
|
||||||
* [Valheim Vanilla](steamcmd_servers/valheim/valheim_vanilla)
|
* [Valheim Vanilla](steamcmd_servers/valheim/valheim_vanilla)
|
||||||
|
* [Valheim BepInEx](steamcmd_servers/valheim/valheim_bepinex)
|
||||||
|
* [Valheim Plus Mod](steamcmd_servers/valheim/valheim_plus)
|
||||||
|
|
||||||
[Teeworlds](teeworlds)
|
[Teeworlds](teeworlds)
|
||||||
|
|
||||||
@@ -171,6 +237,7 @@
|
|||||||
* [Vanilla](terraria/vanilla)
|
* [Vanilla](terraria/vanilla)
|
||||||
|
|
||||||
[Tycoon Games](tycoon_games)
|
[Tycoon Games](tycoon_games)
|
||||||
|
|
||||||
* [OpenRCT2](tycoon_games/openrct2)
|
* [OpenRCT2](tycoon_games/openrct2)
|
||||||
* [OpenTTD](tycoon_games/openttd)
|
* [OpenTTD](tycoon_games/openttd)
|
||||||
|
|
||||||
@@ -180,4 +247,6 @@
|
|||||||
|
|
||||||
[Xonotic](xonotic/xonotic)
|
[Xonotic](xonotic/xonotic)
|
||||||
|
|
||||||
|
[YuzuEmu](yuzu-emu)
|
||||||
|
|
||||||
[FoundryVTT](FoundryVTT)
|
[FoundryVTT](FoundryVTT)
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# Among Us
|
# Among Us
|
||||||
|
|
||||||
|
[BetterCrewLink Server](bettercrewlink_server)
|
||||||
|
This project implements proximity voice chat in Among Us. Everyone in an Among Us lobby with this program running will be able to communicate over voice in-game, with no third-party programs required.
|
||||||
|
|
||||||
[CrewLink Server](crewlink_server)
|
[CrewLink Server](crewlink_server)
|
||||||
This project implements proximity voice chat in Among Us. Everyone in an Among Us lobby with this program running will be able to communicate over voice in-game, with no third-party programs required.
|
This project implements proximity voice chat in Among Us. Everyone in an Among Us lobby with this program running will be able to communicate over voice in-game, with no third-party programs required.
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# Among Us - BetterCrewLink Server
|
||||||
|
|
||||||
|
## From their [Github](https://github.com/OhMyGuus/BetterCrewLink)
|
||||||
|
|
||||||
|
This project implements proximity voice chat in Among Us. Everyone in an Among Us lobby with this program running will be able to communicate over voice in-game, with no third-party programs required. Spatial audio ensures that you can only hear people close to you.
|
||||||
|
|
||||||
|
## Server Port
|
||||||
|
|
||||||
|
Ports required to run the server in a table format.
|
||||||
|
|
||||||
|
| Port | default (HTTPS enabled) | default (HTTPS disabled) |
|
||||||
|
|---------|---------|---------|
|
||||||
|
| Game | 443 | 9736 |
|
||||||
|
|
||||||
|
Default port is 443 if HTTPS is enabled, and 9736 if not. But you can change to any port or domain/ip in the egg
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2022-07-25T23:48:33+02:00",
|
||||||
|
"name": "BetterCrewlink Server",
|
||||||
|
"author": "tobiornotto@gmail.com",
|
||||||
|
"description": "An egg designed to allow support for Proximity Chat in Among Us using BetterCrewLink Server",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"ghcr.io\/parkervcp\/yolks:nodejs_12": "ghcr.io\/parkervcp\/yolks:nodejs_12"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": "yarn start",
|
||||||
|
"config": {
|
||||||
|
"files": "{}",
|
||||||
|
"startup": "{\r\n \"done\": \"<info> BetterCrewLink Server started\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "^c"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!\/bin\/bash\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nINSTALL_REPO=\"https:\/\/github.com\/OhMyGuus\/BetterCrewLink-server.git\"\r\necho -e Install repo set to ${INSTALL_REPO}\r\necho -e \"\/mnt\/server is empty.\\ncloning files from repo\"\r\necho -e \"running 'git clone --single-branch --branch ${BRANCH} ${INSTALL_REPO} .'\"\r\ngit clone --single-branch --branch ${BRANCH} ${INSTALL_REPO} .\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/yarn install\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0",
|
||||||
|
"container": "node:12-buster-slim",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Github branch",
|
||||||
|
"description": "Select one of the available BetterCrewLink-server branches. Master per default.",
|
||||||
|
"env_variable": "BRANCH",
|
||||||
|
"default_value": "master",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Domain",
|
||||||
|
"description": "Domain of your server or ip of your server",
|
||||||
|
"env_variable": "HOSTNAME",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:50",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Server name",
|
||||||
|
"description": "Specifiy the name of your BetterCrewLink server",
|
||||||
|
"env_variable": "NAME",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:75",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Use HTTPS",
|
||||||
|
"description": "Enables https. You must place privkey.pem and fullchain.pem in your CWD.",
|
||||||
|
"env_variable": "HTTPS",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Path to SSL",
|
||||||
|
"description": "Alternate path to SSL certificates.",
|
||||||
|
"env_variable": "SSLPATH",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:250",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Port",
|
||||||
|
"description": "Choose the port your server should run on",
|
||||||
|
"env_variable": "PORT",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,17 +1,18 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1",
|
"version": "PTDL_v2",
|
||||||
"update_url": null
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2021-07-23T12:00:05+03:00",
|
"exported_at": "2023-03-04T15:04:21+01:00",
|
||||||
"name": "Among Us - Impostor Server",
|
"name": "Among Us - Impostor Server",
|
||||||
"author": "info@goover.de",
|
"author": "eggs@goover.dev",
|
||||||
"description": "Impostor is one of the first Among Us private servers, written in C#.\r\n\r\nThe latest version supported is 2020.9.22, both desktop and mobile.\r\n\r\nThere are no special features at this moment, the goal is aiming to be as close as possible to the real server, for now. In a later stage, making modifications to game logic by modifying GameData packets can be looked at.",
|
"description": "Impostor is one of the first Among Us private servers, written in C#.\r\n\r\nThere are no special features at this moment, the goal is aiming to be as close as possible to the real server, for now. In a later stage, making modifications to game logic by modifying GameData packets can be looked at.",
|
||||||
"features": null,
|
"features": null,
|
||||||
"images": [
|
"docker_images": {
|
||||||
"quay.io\/parkervcp\/pterodactyl-images:debian_dotnet-5"
|
"Dotnet_7": "ghcr.io\/parkervcp\/yolks:dotnet_7",
|
||||||
],
|
"Dotnet_6": "ghcr.io\/parkervcp\/yolks:dotnet_6"
|
||||||
|
},
|
||||||
"file_denylist": [],
|
"file_denylist": [],
|
||||||
"startup": ".\/Impostor.Server",
|
"startup": ".\/Impostor.Server",
|
||||||
"config": {
|
"config": {
|
||||||
@@ -22,20 +23,21 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"installation": {
|
"installation": {
|
||||||
"script": "#!\/bin\/bash\r\n\r\napt -y update\r\napt -y --no-install-recommends install wget curl jq unzip tar redis-server file ca-certificates apt-utils\r\nGITHUB_PACKAGE=Impostor\/Impostor\r\nexport HOME=\/mnt\/server\r\ncd $HOME\r\n\r\n## get release info and download links\r\nLATEST_RELEASE=$(curl -L -s -H 'Accept: application\/json' https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/latest)\r\necho -e \"Latest release is $LATEST_RELEASE\"\r\nLATEST_VERSION_TAG=$(echo $LATEST_RELEASE | sed -e 's\/.*\"tag_name\":\"\\([^\"]*\\)\".*\/\\1\/')\r\n\r\n# Remove the first letter v from the version tag that is not present in the download URL\r\nLATEST_VERSION=$(echo $LATEST_VERSION_TAG | cut -c 2-)\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/v$LATEST_VERSION\/Impostor-Server_${LATEST_VERSION}_linux-x64.tar.gz\"\r\nelse \r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/v$VERSION\/Impostor-Server_${VERSION}_linux-x64.tar.gz\"\r\nfi\r\n\r\necho -e \"\\nDownloading from $DOWNLOAD_LINK\"\r\ncurl -L $DOWNLOAD_LINK -o Impostor-Server-linux-x64.tar.gz\r\n\r\ntar xvf Impostor-Server-linux-x64.tar.gz\r\nrm Impostor-Server-linux-x64.tar.gz\r\nchmod +x Impostor.Server\r\n\r\necho -e \"\\nInstall completed\"",
|
"script": "#!\/bin\/bash\r\n\r\napt update\r\napt -y install curl jq tar\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Impostor\/Impostor\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Impostor\/Impostor\/releases\")\r\nMATCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux-x64\" || echo \"linux-arm64\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\necho -e \"\\nDownloading from $DOWNLOAD_URL\"\r\ncurl -sSL -o imposter-server.tar.gz $DOWNLOAD_URL\r\n\r\n\r\necho -e \"\\nUnpacking .tar.gz\"\r\ntar xvf imposter-server.tar.gz\r\n\r\nrm imposter-server.tar.gz\r\nchmod +x Impostor.Server\r\n\r\necho -e \"\\nInstall completed\"",
|
||||||
"container": "debian:buster-slim",
|
"container": "debian:bullseye-slim",
|
||||||
"entrypoint": "bash"
|
"entrypoint": "bash"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"variables": [
|
"variables": [
|
||||||
{
|
{
|
||||||
"name": "Download Version",
|
"name": "Download Version",
|
||||||
"description": "Version to Download. Leave latest for the latest release.\r\n\r\nFind all releases at https:\/\/github.com\/Impostor\/Impostor\/releases",
|
"description": "Version to Download. Leave latest for the latest release.\r\n\r\nFind all releases at https:\/\/github.com\/Impostor\/Impostor\/releases\r\nNote: versions start with a v, example: v1.8.0",
|
||||||
"env_variable": "VERSION",
|
"env_variable": "VERSION",
|
||||||
"default_value": "latest",
|
"default_value": "latest",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string|max:30"
|
"rules": "required|string|max:30",
|
||||||
|
"field_type": "text"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
{
|
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
|
||||||
"meta": {
|
|
||||||
"version": "PTDL_v1",
|
|
||||||
"update_url": null
|
|
||||||
},
|
|
||||||
"exported_at": "2021-12-22T09:10:34+00: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": [
|
|
||||||
"ghcr.io\/parkervcp\/yolks: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": "mkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nrm -f BeamMP-Server\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/BeamMP\/BeamMP-Server\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/BeamMP\/BeamMP-Server\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo -e \"Using latest version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i Server-linux)\r\nelse\r\n echo -e \"Chosen version :${VERSION}. Verifying version from releases\"\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 Server-linux)\r\n else\r\n echo -e \"No valid versions found. Defaulting to the latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\necho -e \"Running curl -sSL ${DOWNLOAD_URL} -o BeamMP-Server\"\r\ncurl -L ${DOWNLOAD_URL} -o 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": "ghcr.io\/parkervcp\/installers:debian",
|
|
||||||
"entrypoint": "bash"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"variables": [
|
|
||||||
{
|
|
||||||
"name": "Version to install",
|
|
||||||
"description": "Latest or invalid versions would default to latest. See all versions visit https:\/\/github.com\/BeamMP\/BeamMP-Server\/releases",
|
|
||||||
"env_variable": "VERSION",
|
|
||||||
"default_value": "latest",
|
|
||||||
"user_viewable": true,
|
|
||||||
"user_editable": true,
|
|
||||||
"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"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,132 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2023-12-05T18:28:42+01: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 through which all clients communicate. You can write lua mods for the server, detailed instructions on the BeamMP Wiki.",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"Debian": "ghcr.io\/parkervcp\/yolks:debian"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": ".\/BeamMP-Server",
|
||||||
|
"config": {
|
||||||
|
"files": "{\r\n \"ServerConfig.toml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"Name =\": \"Name = \\\"{{env.NAME}}\\\"\",\r\n \"Port =\": \"Port = {{server.build.default.port}}\",\r\n \"AuthKey =\": \"AuthKey = \\\"{{env.AUTHKEY}}\\\"\",\r\n \"Private =\": \"Private = {{env.PRIVATE}}\",\r\n \"MaxPlayers =\": \"MaxPlayers = {{server.build.env.MAX_PLAYERS}}\",\r\n \"Description =\": \"Description = \\\"{{env.DESCRIPTION}}\\\"\",\r\n \"MaxCars =\": \"MaxCars = {{env.MAX_CARS}}\",\r\n \"Map =\": \"Map = \\\"{{env.MAP}}\\\"\",\r\n \"LogChat =\": \"LogChat = {{env.LOGCHAT}}\"\r\n }\r\n }\r\n}",
|
||||||
|
"startup": "{\r\n \"done\": \"[INFO] Vehicle data network online\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "exit"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!\/bin\/bash\r\n#Create the server directory\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n#Remove any old versions\r\nrm -f BeamMP-Server\r\n\r\n#Check for latest release & download URLs\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/BeamMP\/BeamMP-Server\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/BeamMP\/BeamMP-Server\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo -e \"Using latest BeamMP server version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i \"${MATCH}\" | head -1)\r\nelse\r\n echo -e \"Chosen version :${VERSION}. Verifying version from releases\"\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}\" | head -1)\r\n else\r\n echo -e \"No valid versions found. Defaulting to the latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i Server-linux | head -1)\r\n fi\r\nfi\r\n\r\n#Download the BeamMP server binary\r\necho -e \"Running curl -sSL ${DOWNLOAD_URL} -o BeamMP-Server\"\r\ncurl -sSL ${DOWNLOAD_URL} -o BeamMP-Server\r\nchmod +x BeamMP-Server\r\n\r\n#Create a default configuration file\r\necho \"[HTTP]\r\n# Recommended to keep enabled. With SSL the server will serve https and requires valid key and cert files\r\nUseSSL = true\r\n# Enables the internal HTTP server\r\nHTTPServerEnabled = false\r\nSSLKeyPath = \\\".\/.ssl\/HttpServer\/key.pem\\\"\r\nHTTPServerPort = 8080\r\nSSLCertPath = \\\".\/.ssl\/HttpServer\/cert.pem\\\"\r\n\r\n[General]\r\n# If SendErrors is `true`, the server will send helpful info about crashes and other issues back to the BeamMP developers. This info may include your config, who is on your server at the time of the error, and similar general information. This kind of data is vital in helping us diagnose and fix issues faster. This has no impact on server performance. You can opt-out of this system by setting this to `false`\r\nSendErrorsShowMessage = true\r\nName = \\\"BeamMP Server\\\"\r\nPort = 30814\r\nResourceFolder = \\\"Resources\\\"\r\n# AuthKey has to be filled out in order to run the server\r\nAuthKey = \\\"\\\"\r\nPrivate = true\r\nMaxPlayers = 10\r\nDebug = false\r\nLogChat = true\r\nDescription = \\\"BeamMP Default Description\\\"\r\nMaxCars = 1\r\nMap = \\\"\/levels\/gridmap_v2\/info.json\\\"\r\n# You can turn on\/off the SendErrors message you get on startup here\r\nSendErrors = true\" > ServerConfig.toml\r\n\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
|
||||||
|
"container": "ghcr.io\/parkervcp\/installers:debian",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Server Name",
|
||||||
|
"description": "The name of your server. This is what appears on the server list.",
|
||||||
|
"env_variable": "NAME",
|
||||||
|
"default_value": "BeamMP Server",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Server Description",
|
||||||
|
"description": "Sets the server description",
|
||||||
|
"env_variable": "DESCRIPTION",
|
||||||
|
"default_value": "BeamMP Default Description",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BeamMP Server Version",
|
||||||
|
"description": "The BeamMP server version to be installed. Latest or invalid versions will default to latest. See all available versions at https:\/\/github.com\/BeamMP\/BeamMP-Server\/releases\r\n\r\nexample: v3.1.0 or v2.2.0 or latest",
|
||||||
|
"env_variable": "VERSION",
|
||||||
|
"default_value": "latest",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:12",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Authentication Key",
|
||||||
|
"description": "The authentication key for your server. A key can be obtained from the BeamMP keymaster at https:\/\/keymaster.beammp.com",
|
||||||
|
"env_variable": "AUTHKEY",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:64",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Max Players",
|
||||||
|
"description": "The maximum number of players allowed on the server.",
|
||||||
|
"env_variable": "MAX_PLAYERS",
|
||||||
|
"default_value": "6",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|integer|max:100",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Private",
|
||||||
|
"description": "Should the server be private?",
|
||||||
|
"env_variable": "PRIVATE",
|
||||||
|
"default_value": "false",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|in:true,false",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Max Cars",
|
||||||
|
"description": "The maximum number of cars allowed to be spawned per player.",
|
||||||
|
"env_variable": "MAX_CARS",
|
||||||
|
"default_value": "1",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|integer|max:10",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Map",
|
||||||
|
"description": "The map for your server. Stock maps are listed below.\r\n\r\n\/levels\/gridmap_v2\/info.json\r\n\/levels\/automation_test_track\/info.json\r\n\/levels\/east_coast_usa\/info.json\r\n\/levels\/hirochi_raceway\/info.json\r\n\/levels\/italy\/info.json\r\n\/levels\/jungle_rock_island\/info.json\r\n\/levels\/industrial\/info.json\r\n\/levels\/small_island\/info.json\r\n\/levels\/smallgrid\/info.json\r\n\/levels\/utah\/info.json\r\n\/levels\/west_coast_usa\/info.json\r\n\/levels\/driver_training\/info.json\r\n\/levels\/derby\/info.json",
|
||||||
|
"env_variable": "MAP",
|
||||||
|
"default_value": "\/levels\/gridmap_v2\/info.json",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:64",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Chat logging",
|
||||||
|
"description": "Enable chat logging by the server",
|
||||||
|
"env_variable": "LOGCHAT",
|
||||||
|
"default_value": "true",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|in:true,false",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Match",
|
||||||
|
"description": "The match we have to do on there github package.\r\n\r\nCurrently, they have a special build for debian 11, what is the docker image we use.\r\nGo to https:\/\/github.com\/BeamMP\/BeamMP-Server\/releases if the version you want has an asset \"debian\" then select \"Server-debian\" if not then \"Server-linux\"",
|
||||||
|
"env_variable": "MATCH",
|
||||||
|
"default_value": "Server-debian",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|in:Server-debian,Server-linux",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
# Clone Hero
|
||||||
|
|
||||||
|
## From their [Site](https://clonehero.net/)
|
||||||
|
|
||||||
|
## [Documentation](https://wiki.clonehero.net/books/guides-and-tutorials/page/online-multiplayer#bkmrk-hosting-a-standalone)
|
||||||
|
|
||||||
|
|
||||||
|
## Minimum RAM warning
|
||||||
|
|
||||||
|
Minimum required memory to run the server.
|
||||||
|
80MiB is recommended. 2GB+ is preferred
|
||||||
|
|
||||||
|
## Minumim Sorage warning
|
||||||
|
|
||||||
|
Minimum required storage to run the server.
|
||||||
|
100MiB is recommended. 2GiB+ is preferred
|
||||||
|
|
||||||
|
|
||||||
|
## Server Ports
|
||||||
|
|
||||||
|
Ports required to run the server.
|
||||||
|
|
||||||
|
| Port | default |
|
||||||
|
|---------|---------|
|
||||||
|
| Game | 14242 |
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
|
||||||
|
<!--Notes about the server ports.-->
|
||||||
|
14242 is the default port, but any port can be used.
|
||||||
|
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2023-11-30T10:24:33+01:00",
|
||||||
|
"name": "Clone Hero",
|
||||||
|
"author": "josdekurk@gmail.com",
|
||||||
|
"description": "Clone Hero is a classic instrument based rhythm game for Windows, Mac, Linux, and Android. It's playable with any 5 or 6 fret guitar controller, any midi drum kit, any game controller and even your keyboard! Jam out with Drums, 5-fret Guitar, or 6-fret Guitar online or local!",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"Debian": "ghcr.io\/parkervcp\/yolks:debian"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": ".\/Server -l {{LOG_LEVEL}} -n \"{{SERVER_DISPLAY_NAME}}\" -p {{SERVER_PORT}} -a 0.0.0.0 $([[ -z \"${SERVER_PASSWORD}\" ]] && echo -np || echo \"-ps ${SERVER_PASSWORD}\")",
|
||||||
|
"config": {
|
||||||
|
"files": "{}",
|
||||||
|
"startup": "{\r\n \"done\": \"Server running...\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "^c"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!\/bin\/bash\r\n\r\napt update\r\napt -y install curl unzip jq\r\n\r\n## get release info and download links\r\nV=$(curl -s https:\/\/clonehero.net\/ | grep -i \"Latest version\" | grep -oP '(?<=<b>).+?(?=<\\\/b>)' | sed -e 's\/^[[:space:]]*\/\/' -e 's\/[[:space:]]*$\/\/') #v1.0.0.4080\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/clonehero-game\/releases\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/clonehero-game\/releases\/releases\")\r\nMATCH=CloneHero-standalone_server\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i server)\r\n fi\r\nfi\r\n\r\n\r\nV=$(curl -s https:\/\/clonehero.net\/ | grep -i \"Latest version\" | grep -oP '(?<=<b>).+?(?=<\\\/b>)' | sed -e 's\/^[[:space:]]*\/\/' -e 's\/[[:space:]]*$\/\/') #v1.0.0.4080\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux-x64\" || echo \"linux-arm64\")\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\necho \"Running: curl -sSL -o ChStandaloneServer.zip ${DOWNLOAD_URL}\"\r\ncurl -sSL -o ChStandaloneServer.zip ${DOWNLOAD_URL}\r\n\r\nunzip -o ChStandaloneServer.zip\r\nrm ChStandaloneServer.zip\r\n\r\nmv ChStandaloneServer-${V}-final\/${ARCH}\/* .\r\nrm -rf ChStandaloneServer-${V}-final\/\r\n\r\nchmod +x Server\r\n\r\n\r\nif [ ! -f \/mnt\/server\/settings.ini ]\r\nthen\r\n\tcurl -sSL -o settings.ini https:\/\/pastebin.com\/raw\/rhcv0hvi\r\nfi\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
|
||||||
|
"container": "debian:bullseye-slim",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Server name",
|
||||||
|
"description": "The name of the server",
|
||||||
|
"env_variable": "SERVER_DISPLAY_NAME",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:80",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Server password",
|
||||||
|
"description": "The password of the server",
|
||||||
|
"env_variable": "SERVER_PASSWORD",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|regex:\/^[a-zA-Z0-9_]+$\/",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Log level",
|
||||||
|
"description": "Set max logging level",
|
||||||
|
"env_variable": "LOG_LEVEL",
|
||||||
|
"default_value": "4",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|in:0,1,2,3,4",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Version",
|
||||||
|
"description": "The version of Clone Hero you want to install.\r\nExample: V1.0.0.4080 or latest",
|
||||||
|
"env_variable": "VERSION",
|
||||||
|
"default_value": "latest",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,162 +0,0 @@
|
|||||||
# Call of Duty 4X
|
|
||||||
|
|
||||||
## Game files mounting
|
|
||||||
|
|
||||||
The server does **not** contain the base game files, but they are necessary to use the server.
|
|
||||||
|
|
||||||
While the server itself is open-source, the game files are copyrighted and you will need to own a legitimate copy of the game (Call of Duty 4: Modern Warfare)
|
|
||||||
in order to provide the game files to the server.
|
|
||||||
|
|
||||||
More information here: <https://github.com/callofduty4x/CoD4x_Server#setting-up-a-call-of-duty-4-server-with-cod4x-18>
|
|
||||||
|
|
||||||
## Correctly mounting the game files
|
|
||||||
|
|
||||||
In order to give the server access to the needed game files you will need to create a new mount.
|
|
||||||
|
|
||||||
Let's say you copied the game files to your node into the directory `/home/pterodactyl/serverfiles/cod4x` (you can choose any directory you want of course).
|
|
||||||
The directory structure will look like this: <details>
|
|
||||||
|
|
||||||
```md
|
|
||||||
/home/pterodactyl/serverfiles/cod4x
|
|
||||||
├── main
|
|
||||||
│ ├── iw_00.iwd
|
|
||||||
│ ├── iw_01.iwd
|
|
||||||
│ ├── iw_02.iwd
|
|
||||||
│ ├── iw_03.iwd
|
|
||||||
│ ├── iw_04.iwd
|
|
||||||
│ ├── iw_05.iwd
|
|
||||||
│ ├── iw_06.iwd
|
|
||||||
│ ├── iw_07.iwd
|
|
||||||
│ ├── iw_08.iwd
|
|
||||||
│ ├── iw_09.iwd
|
|
||||||
│ ├── iw_10.iwd
|
|
||||||
│ ├── iw_11.iwd
|
|
||||||
│ ├── iw_12.iwd
|
|
||||||
│ ├── iw_13.iwd
|
|
||||||
│ ├── localized_english_iw00.iwd
|
|
||||||
│ ├── localized_english_iw01.iwd
|
|
||||||
│ ├── localized_english_iw02.iwd
|
|
||||||
│ ├── localized_english_iw03.iwd
|
|
||||||
│ ├── localized_english_iw04.iwd
|
|
||||||
│ ├── localized_english_iw05.iwd
|
|
||||||
│ └── localized_english_iw06.iwd
|
|
||||||
└── zone
|
|
||||||
└── english
|
|
||||||
├── ac130.ff
|
|
||||||
├── aftermath.ff
|
|
||||||
├── airlift.ff
|
|
||||||
├── airplane.ff
|
|
||||||
├── ambush.ff
|
|
||||||
├── armada.ff
|
|
||||||
├── blackout.ff
|
|
||||||
├── bog_a.ff
|
|
||||||
├── bog_b.ff
|
|
||||||
├── cargoship.ff
|
|
||||||
├── code_post_gfx.ff
|
|
||||||
├── code_post_gfx_mp.ff
|
|
||||||
├── common.ff
|
|
||||||
├── common_mp.ff
|
|
||||||
├── coup.ff
|
|
||||||
├── hunted.ff
|
|
||||||
├── icbm.ff
|
|
||||||
├── jeepride.ff
|
|
||||||
├── killhouse.ff
|
|
||||||
├── launchfacility_a.ff
|
|
||||||
├── launchfacility_b.ff
|
|
||||||
├── localized_code_post_gfx_mp.ff
|
|
||||||
├── localized_common_mp.ff
|
|
||||||
├── mp_backlot.ff
|
|
||||||
├── mp_backlot_load.ff
|
|
||||||
├── mp_bloc.ff
|
|
||||||
├── mp_bloc_load.ff
|
|
||||||
├── mp_bog.ff
|
|
||||||
├── mp_bog_load.ff
|
|
||||||
├── mp_broadcast.ff
|
|
||||||
├── mp_broadcast_load.ff
|
|
||||||
├── mp_carentan.ff
|
|
||||||
├── mp_carentan_load.ff
|
|
||||||
├── mp_cargoship.ff
|
|
||||||
├── mp_cargoship_load.ff
|
|
||||||
├── mp_citystreets.ff
|
|
||||||
├── mp_citystreets_load.ff
|
|
||||||
├── mp_convoy.ff
|
|
||||||
├── mp_convoy_load.ff
|
|
||||||
├── mp_countdown.ff
|
|
||||||
├── mp_countdown_load.ff
|
|
||||||
├── mp_crash.ff
|
|
||||||
├── mp_crash_load.ff
|
|
||||||
├── mp_crash_snow.ff
|
|
||||||
├── mp_crash_snow_load.ff
|
|
||||||
├── mp_creek.ff
|
|
||||||
├── mp_creek_load.ff
|
|
||||||
├── mp_crossfire.ff
|
|
||||||
├── mp_crossfire_load.ff
|
|
||||||
├── mp_farm.ff
|
|
||||||
├── mp_farm_load.ff
|
|
||||||
├── mp_killhouse.ff
|
|
||||||
├── mp_killhouse_load.ff
|
|
||||||
├── mp_overgrown.ff
|
|
||||||
├── mp_overgrown_load.ff
|
|
||||||
├── mp_pipeline.ff
|
|
||||||
├── mp_pipeline_load.ff
|
|
||||||
├── mp_shipment.ff
|
|
||||||
├── mp_shipment_load.ff
|
|
||||||
├── mp_showdown.ff
|
|
||||||
├── mp_showdown_load.ff
|
|
||||||
├── mp_strike.ff
|
|
||||||
├── mp_strike_load.ff
|
|
||||||
├── mp_vacant.ff
|
|
||||||
├── mp_vacant_load.ff
|
|
||||||
├── scoutsniper.ff
|
|
||||||
├── simplecredits.ff
|
|
||||||
├── sniperescape.ff
|
|
||||||
├── ui.ff
|
|
||||||
├── ui_mp.ff
|
|
||||||
├── village_assault.ff
|
|
||||||
└── village_defend.ff
|
|
||||||
|
|
||||||
3 directories, 93 files
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
First of all add the directory of the mount to the config.yml (in `/etc/pterodactyl`) of your node.
|
|
||||||
|
|
||||||
```md
|
|
||||||
allowed_mounts:
|
|
||||||
- /home/pterodactyl/serverfiles
|
|
||||||
```
|
|
||||||
|
|
||||||
After you've done this, restart wings with `systemctl restart wings`.
|
|
||||||
|
|
||||||
Now you simply create a mount in the Pterodactyl Panel with the following settings:
|
|
||||||
|
|
||||||
1. Set the source to `/home/pterodactyl/serverfiles/cod4x`
|
|
||||||
2. Set the target to any directory you want (but not something in `/home/container`, I suggest something like `/mnt/gamefiles/cod4`)
|
|
||||||
3. Set read-only to "true" ("false" will also work, but then you risk that one instance overwrites files for all other instances)
|
|
||||||
4. For the rest of the settings you can decide what works best for you
|
|
||||||
5. Create the mount
|
|
||||||
6. Add the correct node to the list of nodes for the mount
|
|
||||||
7. Add the CoD4X egg to the list of eggs for the mount
|
|
||||||
|
|
||||||
### Correctly configuring the servers
|
|
||||||
|
|
||||||
In order for the server to find the game files you have to set "Game file path" variable in the server to the same directory that you used in the "target" field of the mount.
|
|
||||||
When you start the server for the first time it will prompt you to mount the game files under the configured path.
|
|
||||||
|
|
||||||
1. In the admin interface open your server
|
|
||||||
2. Go to the tab "Mounts"
|
|
||||||
3. Klick on the green "+" button on the correct mount in order to mount the game files
|
|
||||||
4. Restart the server
|
|
||||||
|
|
||||||
**Congratulations!** Your server should be able to find the game files and start.
|
|
||||||
|
|
||||||
## Default Server Ports
|
|
||||||
|
|
||||||
The default is 28960, but the server will automatically use the port defined in the allocation.
|
|
||||||
|
|
||||||
| Port | default |
|
|
||||||
|---------|---------|
|
|
||||||
| Game | 28960 |
|
|
||||||
|
|
||||||
### Plugins may require ports to be added to the server
|
|
||||||
@@ -1,104 +0,0 @@
|
|||||||
{
|
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
|
||||||
"meta": {
|
|
||||||
"version": "PTDL_v1",
|
|
||||||
"update_url": null
|
|
||||||
},
|
|
||||||
"exported_at": "2021-05-04T10:23:27+02:00",
|
|
||||||
"name": "Call of Duty 4X",
|
|
||||||
"author": "admin@grimsi.de",
|
|
||||||
"description": "A client and server modification for Call of Duty 4: Modern Warfare with the aim to fix bugs and enhance gameplay!",
|
|
||||||
"features": null,
|
|
||||||
"images": [
|
|
||||||
"quay.io\/parkervcp\/pterodactyl-images:base_debian"
|
|
||||||
],
|
|
||||||
"file_denylist": [],
|
|
||||||
"startup": "if [ ! -d \"{{GAME_FILE_PATH}}\" ]; then echo \"CoD 4 game files not found. Maybe they are not mounted?\"; echo \"In order for the server to start mount the game files here: {{GAME_FILE_PATH}}\"; while true; do sleep 2; done; fi; .\/cod4x18_dedrun +exec server.cfg +set dedicated \"{{SERVER_NETWORK_MODE}}\" +set sv_maxclients \"{{MAX_PLAYERS}}\" +set net_ip 0.0.0.0 +set net_port \"{{SERVER_PORT}}\" +set fs_basepath \"{{GAME_FILE_PATH}}\" +set fs_homepath . +map_rotate",
|
|
||||||
"config": {
|
|
||||||
"files": "{\r\n \"main\/server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"sv_hostname\": \"sv_hostname \\\"{{server.build.env.SERVER_NAME}}\\\"\",\r\n \"rcon_password\": \"rcon_password \\\"{{server.build.env.ADMIN_PASSWORD}}\\\"\",\r\n \"g_password\": \"g_password \\\"{{server.build.env.SERVER_PASSWORD}}\\\"\",\r\n \"sv_authtoken\": \"sv_authtoken \\\"{{server.build.env.SERVER_AUTH_TOKEN}}\\\"\",\r\n \"sv_mapRotation\": \"sv_mapRotation \\\"{{server.build.env.MAP_ROTATION}}\\\"\"\r\n }\r\n }\r\n}",
|
|
||||||
"startup": "{\r\n \"done\": \"By using this software you agree to the usage conditions\",\r\n \"userInteraction\": []\r\n}",
|
|
||||||
"logs": "{}",
|
|
||||||
"stop": "quit"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"installation": {
|
|
||||||
"script": "#!\/bin\/ash\r\n# CoD 4X Installation script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\nDOWNLOAD_LINK=https:\/\/cod4x.me\/downloads\/cod4x_server-linux.zip\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\/\r\n\r\n## this is a simple script to validate a download url actually exists and is reachable\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}; then\r\n echo -e \"Download-URL is reachable.\"\r\n else \r\n echo -e \"Could not reach ${DOWNLOAD_LINK}.\"\r\n echo -e \"Aborting installation...\"\r\n exit 1\r\n fi\r\nfi\r\n\r\n# Download the server binaries\r\necho -e \"running 'curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}'\" \r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho -e \"Unpacking server files\"\r\nunzip ${DOWNLOAD_LINK##*\/}\r\n\r\necho -e \"Moving server files to \/mnt\/server\"\r\nmv .\/cod4x-linux-server\/* .\r\n\r\necho -e \"Cleaning up downloaded files.\"\r\nrm ${DOWNLOAD_LINK##*\/}\r\nrm -rf .\/cod4x-linux-server\r\n\r\necho -e \"Installing required runtime libs.\"\r\nmv .\/runtime\/libstdc++.so.6 .\r\n\r\necho -e \"Generating config file\"\r\ncat <<EOF > .\/main\/server.cfg\r\nsv_hostname \"${SERVER_NAME}\"\r\ng_password \"${SERVER_PASSWORD}\"\r\nrcon_password \"${ADMIN_PASSWORD}\"\r\n\r\nsv_punkbuster \"0\"\r\nsv_cheats \"0\"\r\nsv_voice \"0\"\r\nscr_teambalance \"1\"\r\ng_allowvote \"1\"\r\n\r\nsv_authorizemode \"0\"\r\nsv_authtoken \"${SERVER_AUTH_TOKEN}\"\r\n\r\nsv_floodProtect \"1\"\r\n\r\nsv_mapRotation \"${MAP_ROTATION}\"\r\nEOF\r\n\r\necho -e \"running 'chmod +x .\/cod4x18_dedrun'\"\r\nchmod +x .\/cod4x18_dedrun\r\n\r\necho -e \"Installation complete\"",
|
|
||||||
"container": "quay.io\/matthewp\/pterodactyl:alpine-install",
|
|
||||||
"entrypoint": "ash"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"variables": [
|
|
||||||
{
|
|
||||||
"name": "Server Name",
|
|
||||||
"description": "Hostname of the server.",
|
|
||||||
"env_variable": "SERVER_NAME",
|
|
||||||
"default_value": "Pterodactyl CoD 4X Server",
|
|
||||||
"user_viewable": true,
|
|
||||||
"user_editable": true,
|
|
||||||
"rules": "required|string|max:40"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Server Password",
|
|
||||||
"description": "Password of the server.",
|
|
||||||
"env_variable": "SERVER_PASSWORD",
|
|
||||||
"default_value": "",
|
|
||||||
"user_viewable": true,
|
|
||||||
"user_editable": true,
|
|
||||||
"rules": "nullable|string|max:20"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Admin Password",
|
|
||||||
"description": "RCON password for the server.",
|
|
||||||
"env_variable": "ADMIN_PASSWORD",
|
|
||||||
"default_value": "password123",
|
|
||||||
"user_viewable": false,
|
|
||||||
"user_editable": false,
|
|
||||||
"rules": "required|string|min:8|max:20"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Server Slots",
|
|
||||||
"description": "Amount of players that can play on the server.",
|
|
||||||
"env_variable": "MAX_PLAYERS",
|
|
||||||
"default_value": "32",
|
|
||||||
"user_viewable": true,
|
|
||||||
"user_editable": false,
|
|
||||||
"rules": "required|digits_between:1,3|min:1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Game File Path",
|
|
||||||
"description": "Path to the CoD 4 game files (has to be the same as the \"target\" of the mount)",
|
|
||||||
"env_variable": "GAME_FILE_PATH",
|
|
||||||
"default_value": "\/mnt\/gamefiles\/cod4",
|
|
||||||
"user_viewable": false,
|
|
||||||
"user_editable": false,
|
|
||||||
"rules": "required|string|max:40"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Map Rotation",
|
|
||||||
"description": "Map rotation in Quake format.",
|
|
||||||
"env_variable": "MAP_ROTATION",
|
|
||||||
"default_value": "gametype war map mp_crossfire",
|
|
||||||
"user_viewable": true,
|
|
||||||
"user_editable": true,
|
|
||||||
"rules": "nullable|string|max:1000"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Server Network Mode",
|
|
||||||
"description": "1 for LAN only, 2 for public",
|
|
||||||
"env_variable": "SERVER_NETWORK_MODE",
|
|
||||||
"default_value": "1",
|
|
||||||
"user_viewable": true,
|
|
||||||
"user_editable": true,
|
|
||||||
"rules": "required|digits:1|min:1|max:2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Server Authentication Token",
|
|
||||||
"description": "Token needed to list your server on the public masterserver. Generate here: https:\/\/cod4master.cod4x.me\/index.php?token_generator=true",
|
|
||||||
"env_variable": "SERVER_AUTH_TOKEN",
|
|
||||||
"default_value": "",
|
|
||||||
"user_viewable": true,
|
|
||||||
"user_editable": true,
|
|
||||||
"rules": "nullable|string|size:40"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
# CS2D
|
||||||
|
|
||||||
|
|
||||||
|
## From their [Site](https://www.cs2d.com/index.php)
|
||||||
|
|
||||||
|
|
||||||
|
## [Documentation](https://www.cs2d.com/serverhosting.php)
|
||||||
|
|
||||||
|
|
||||||
|
## Install notes
|
||||||
|
|
||||||
|
This egg only supports downloading the latest releases
|
||||||
|
|
||||||
|
## Minimum RAM warning
|
||||||
|
|
||||||
|
Minimum required memory to run the server.
|
||||||
|
1GB is recommended. 2GB+ is preferred
|
||||||
|
|
||||||
|
## Minumim Sorage warning
|
||||||
|
|
||||||
|
Minimum required storage to run the server.
|
||||||
|
600Mib is recommended. 2GB+ is preferred
|
||||||
|
|
||||||
|
## Server Ports
|
||||||
|
|
||||||
|
Ports required to run the server in a table format.
|
||||||
|
|
||||||
|
| Port | default |
|
||||||
|
|---------|---------|
|
||||||
|
| Game | 36963 |
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
|
||||||
|
<!--Notes about the server ports.-->
|
||||||
|
36963 is the default port, but any port can be used.
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2023-06-20T12:12:15+02:00",
|
||||||
|
"name": "CS2D",
|
||||||
|
"author": "josdekurk@gmail.com",
|
||||||
|
"description": "Plant and defuse bombs, rescue hostages or accomplish new missions like capture the flag or domination! Use a huge arsenal of weapons and equipment including crazy stuff like portal guns, lasers, RPGs, turrets and much more! You can even build things!",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"ghcr.io\/parkervcp\/games:source": "ghcr.io\/parkervcp\/games:source"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": ".\/cs2d_dedicated",
|
||||||
|
"config": {
|
||||||
|
"files": "{\r\n \"sys\/server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"sv_hostport \": \"sv_hostport {{server.build.default.port}}\",\r\n \"sv_name\": \"sv_name {{server.build.env.SERVER_NAME}}\",\r\n \"sv_password\": \"sv_password {{server.build.env.SERVER_PASSWORD}}\",\r\n \"sv_maxplayers\": \"sv_maxplayers {{server.build.env.SERVER_PLAYERS}}\"\r\n }\r\n }\r\n}",
|
||||||
|
"startup": "{\r\n \"done\": \"----- Server started -----\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "^^C"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!\/bin\/bash\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nv=$(curl -s https:\/\/www.cs2d.com\/download.php | grep -Eo \"https?:\/\/\\S+?\\\"\" | grep -i \"get.php?get=cs2d_\" | grep -i \"linux\") # https:\/\/www.unrealsoftware.de\/get.php?get=cs2d_1013_linux.zip\"\r\nn=$(echo ${v#*=} | sed 's\/\"\/\/' ) # cs2d_1013_linux.zip\r\n\r\nc=$(curl -s https:\/\/www.unrealsoftware.de\/get.php?get=${n} | grep -o '<a class=\"l_dl\" href=\"get.php?.*\">' | cut -f2 -d \"<\" | awk '{print $3}' | grep -o '\"[^\"]*\"') # \"get.php?get=cs2d_1013_linux.zip&p=1&cid=15745\"\r\ncid=$(echo ${c\/\/\\\"\/} | cut -f4 -d '=') #15745\r\n\r\nDOWNLOAD_URL=\"https:\/\/www.unrealsoftware.de\/get.php?get=${n}&p=1&cid=${cid}\"\r\n\r\necho \"${DOWNLOAD_URL}\"\r\n\r\ncurl -sSL -o client.zip \"${DOWNLOAD_URL}\"\r\n\r\nunzip -o client.zip\r\nrm client.zip\r\n\r\ncurl -sSL -o dedicated.zip \"https:\/\/www.unrealsoftware.de\/files_pub\/cs2d_dedicated_linux.zip\"\r\nunzip -o dedicated.zip\r\nrm dedicated.zip\r\n\r\nchmod +x cs2d_dedicated\r\n\r\necho \"install finished\"",
|
||||||
|
"container": "ghcr.io\/parkervcp\/installers:debian",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Server Name",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "SERVER_NAME",
|
||||||
|
"default_value": "CS2D Server",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:64",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Server Password",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "SERVER_PASSWORD",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:32",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Max Players",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "SERVER_PLAYERS",
|
||||||
|
"default_value": "12",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
# AssaultCube
|
||||||
|
[assault.cubers.net](https://assault.cubers.net/)
|
||||||
|
|
||||||
|
AssaultCube is a FREE, multiplayer, first-person shooter game, based on the CUBE engine.
|
||||||
|
|
||||||
|
Taking place in realistic environments, with fast, arcade gameplay, it's addictive and fun!
|
||||||
|
|
||||||
|
With efficient bandwidth usage, it's low-latency and can even run over a 56 Kbps connection.
|
||||||
|
It's tiny too, weighing in at a lightweight about 50 MB package available for Windows, Mac and Linux.
|
||||||
|
On the correct settings, it can even run on old hardware (Pentium III and above).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Server Ports
|
||||||
|
|
||||||
|
Ports required to run the server.
|
||||||
|
|
||||||
|
| Port | default |
|
||||||
|
|---------|---------|
|
||||||
|
| Game | 28763 |
|
||||||
|
| Game +1 | 28764 |
|
||||||
|
|
||||||
|
The second port is only used for the server master list to be able to update the server info. (Description, player count, etc.)
|
||||||
|
|
||||||
|
**Must be Game +1!**
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
|
||||||
|
<!--Notes about the server ports.-->
|
||||||
|
28763 & 28764 is the default ports, but any port can be used.
|
||||||
@@ -0,0 +1,112 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2023-07-30T10:56:35+02:00",
|
||||||
|
"name": "AssaultCube",
|
||||||
|
"author": "holeintheseat@gmail.com",
|
||||||
|
"description": "AssaultCube is a FREE, multiplayer, first-person shooter game, based on the CUBE engine.\r\n\r\nTaking place in realistic environments, with fast, arcade gameplay, it's addictive and fun!",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"Debian": "ghcr.io\/parkervcp\/yolks:debian"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": ".\/bin_unix\/linux_64_server -Y{{ASSAULT_SERVER_KEY}} -n\"{{ASSAULT_SERVER_DESCRIPTION}}\" -o\"{{ASSAULT_SERVER_MOTD}}\" -c{{ASSAULT_SERVER_MAXPLAYERS}} -x{{ASSAULT_SERVER_ADMINPASSWORD}} -f{{SERVER_PORT}} -p{{ASSAULT_SERVER_PLAYERPASSWORD}} -m{{ASSAULT_SERVER_MASTERSERVER}}",
|
||||||
|
"config": {
|
||||||
|
"files": "{}",
|
||||||
|
"startup": "{\r\n \"done\": \"dedicated server started, waiting for clients...\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "^^C"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!\/bin\/bash\r\n# AssaultCube Server Egg (By HoleInTheSeat) <|-|> (https:\/\/assault.cubers.net\/)\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n#######-|Dependencies|-#######\r\napt update\r\napt -y install tar make bzip2 build-essential clang libclang-dev libclang1 llvm llvm-dev clang-tools libz-dev curl jq\r\n\r\n#######-|Downloading files|-#######\r\ncd \/mnt\/server\r\n## get release info and download links\r\n\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/assaultcube\/AC\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/assaultcube\/AC\/releases\")\r\nMATCH=tar.bz2\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | head -1)\r\n fi\r\nfi\r\n\r\n\r\ncurl -sSL -o AssaultCube.tar.bz2 ${DOWNLOAD_URL}\r\ntar -xf AssaultCube.tar.bz2\r\nrm AssaultCube.tar.bz2\r\n\r\n#######-|Setting Up Server|-#######\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\nrm -rf bin_win32\/ *.sh\r\n\r\nif [ \"$(uname -m)\" = \"x86_64\" ]; then\r\n echo -e \"x86 System\"\r\nelse\r\n cd \/mnt\/server\/source\/src\r\n make server_install\r\nfi\r\n#######-|Insert Server Authkey|-#######\r\ncd \/mnt\/server\r\nsed -i 's\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/{{ASSAULT_SERVER_KEY}}\/' .\/config\/servercmdline.txt\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
|
||||||
|
"container": "debian:bullseye-slim",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Server Auth Key",
|
||||||
|
"description": "You must provide your own key for the server to register on the masterserver.\r\nTo generate a key you can run the client and issue the command:\r\n\r\n authkey new server \r\n \r\nSee: (https:\/\/assault.cubers.net\/docs\/server.html)",
|
||||||
|
"env_variable": "ASSAULT_SERVER_KEY",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|required|string|max:64",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Server Description",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "ASSAULT_SERVER_DESCRIPTION",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:512",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Message of the Day",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "ASSAULT_SERVER_MOTD",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:512",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Max Players",
|
||||||
|
"description": "Set the limit on amount of players able to join (MAX 16)",
|
||||||
|
"env_variable": "ASSAULT_SERVER_MAXPLAYERS",
|
||||||
|
"default_value": "16",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|integer|max:16",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Admin Password",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "ASSAULT_SERVER_ADMINPASSWORD",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:512|min:5",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Player Password",
|
||||||
|
"description": "Password need to join the server.",
|
||||||
|
"env_variable": "ASSAULT_SERVER_PLAYERPASSWORD",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:512",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Master Server",
|
||||||
|
"description": "Forces the server to register with the hostname or IP address of a different masterserver.\r\nThe default is ms.cubers.net\r\nIf you want your server to be hidden and not report to the masterserver, use -mlocalhost",
|
||||||
|
"env_variable": "ASSAULT_SERVER_MASTERSERVER",
|
||||||
|
"default_value": "ms.cubers.net",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:512",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Version",
|
||||||
|
"description": "The version of the engine you want to download.",
|
||||||
|
"env_variable": "VERSION",
|
||||||
|
"default_value": "latest",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# Cube 2: Sauerbraten
|
||||||
|
[sauerbraten.org](http://sauerbraten.org/)
|
||||||
|
|
||||||
|
Cube 2: Sauerbraten is a free multiplayer & singleplayer first person shooter, the successor of the Cube FPS.
|
||||||
|
Much like the original Cube, the aim of this game is fun, old school deathmatch gameplay and also to allow map/geometry editing to be done cooperatively in-game.
|
||||||
|
|
||||||
|
## Server Ports
|
||||||
|
|
||||||
|
Ports required to run the server.
|
||||||
|
|
||||||
|
| Port | default |
|
||||||
|
|---------|---------|
|
||||||
|
| Game | 28785 |
|
||||||
|
| Game +1 | 28786 |
|
||||||
|
|
||||||
|
The second port is only used for the server master list to be able to update the server info. (Description, player count, etc.)
|
||||||
|
|
||||||
|
**Must be Game +1!**
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
|
||||||
|
<!--Notes about the server ports.-->
|
||||||
|
28785 & 28786 is the default ports, but any port can be used.
|
||||||
|
Port 28784 must be available for pinging servers over a LAN to work.
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2023-07-30T11:20:16+02:00",
|
||||||
|
"name": "Cube 2: Sauerbraten",
|
||||||
|
"author": "holeintheseat@gmail.com",
|
||||||
|
"description": "Cube 2: Sauerbraten is a free multiplayer & singleplayer first person shooter, the successor of the Cube FPS.\r\nMuch like the original Cube, the aim of this game is fun, old school deathmatch gameplay and also to allow map\/geometry editing to be done cooperatively in-game.",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"Debian": "ghcr.io\/parkervcp\/yolks:debian"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": ".\/bin_unix\/linux_64_server -j{{SERVER_PORT}} -n{{CUBE_SERVERDESCRIPTION}} -c{{CUBE_MAXPLAYERS}} -m{{CUBE_MASTERSERVER}} -p{{CUBE_ADMINPASSWORD}}",
|
||||||
|
"config": {
|
||||||
|
"files": "{}",
|
||||||
|
"startup": "{\r\n \"done\": \"dedicated server started, waiting for clients...\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "^^C"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!\/bin\/bash\r\n# AssaultCube Server Egg (By HoleInTheSeat) <|-|> (https:\/\/assault.cubers.net\/)\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napt update \r\n#######-|Dependencies|-#######\r\napt -y install tar curl bzip2\r\n#######-|Downloading files|-#######\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\necho -e \"\\n\"\r\necho -e \"\\n\"\r\necho -e \"###############################################\"\r\necho -e \"## Downloading and unarchiving Sauerbraten ##\"\r\necho -e \"## THIS WILL TAKE A WHILE. PLEASE BE PATIENT ##\"\r\necho -e \"###############################################\"\r\necho -e \"\\n\"\r\necho -e \"\\n\"\r\ncurl -sSL -o sauerbraten_2020_12_29_linux.tar.bz2 https:\/\/cfhcable.dl.sourceforge.net\/project\/sauerbraten\/sauerbraten\/2020_11_29\/sauerbraten_2020_12_29_linux.tar.bz2\r\ntar -xf sauerbraten_2020_12_29_linux.tar.bz2 -strip-components=1\r\nrm sauerbraten_2020_12_29_linux.tar.bz2\r\nchmod +x bin_unix\/linux_64_server\r\n\r\n#######-|Alert Completion|-#######\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
|
||||||
|
"container": "debian:stable",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Server Description",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "CUBE_SERVERDESCRIPTION",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:512",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Max Players",
|
||||||
|
"description": "Sets the max number of clients to N. The default is 4. If you want to set it higher, be aware that bandwidth usage almost doubles with each extra client, so only do this if the server runs on a serious pipe (not your home DSL or Cable connection).",
|
||||||
|
"env_variable": "CUBE_MAXPLAYERS",
|
||||||
|
"default_value": "4",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|integer|max:16",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Master Server",
|
||||||
|
"description": "Sets the master server to use for either server (registering) and client (updating) to S. (default: sauerbraten.org).",
|
||||||
|
"env_variable": "CUBE_MASTERSERVER",
|
||||||
|
"default_value": "sauerbraten.org",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:512",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Admin Password",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "CUBE_ADMINPASSWORD",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:512",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
# DDRaceNetwork
|
||||||
|
|
||||||
|
## From their [Website](https://ddnet.org/downloads/)
|
||||||
|
|
||||||
|
DDraceNetwork (DDNet) is an actively maintained version of DDRace, a Teeworlds modification with a unique cooperative gameplay..
|
||||||
|
|
||||||
|
## Installation/System Requirements
|
||||||
|
| | Bare Minimum | Recommended |
|
||||||
|
|---------|---------|---------|
|
||||||
|
| Processor | Almost any proccessor will work | -|
|
||||||
|
| RAM | 100 MiB | 256 MiB |
|
||||||
|
| Storage | 70 MiB | 1024 MiB |
|
||||||
|
| Network | Any reasonable speed |- |
|
||||||
|
| Game Ownership | Not needed | The game is free, and server doesn't need the game to work. |
|
||||||
|
|
||||||
|
## Server Ports
|
||||||
|
|
||||||
|
| Port | default |
|
||||||
|
|---------|---------|
|
||||||
|
| Game | 8303 |
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2023-07-01T12:47:31+02:00",
|
||||||
|
"name": "DDRaceNetwork",
|
||||||
|
"author": "diedyesterdaywashere@gmail.com",
|
||||||
|
"description": "DDraceNetwork (DDNet) is an actively maintained version of DDRace, a Teeworlds modification with a unique cooperative gameplay.",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": ".\/DDNet-Server",
|
||||||
|
"config": {
|
||||||
|
"files": "{\r\n \"data\/autoexec_server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"sv_port\": \"sv_port {{server.build.default.port}}\",\r\n \"sv_name\": \"sv_name \\\"{{server.build.env.SERVER_NAME}}\\\"\",\r\n \"password\": \"password \\\"{{server.build.env.SERVER_PASSWORD}}\\\"\",\r\n \"sv_map\": \"sv_map \\\"{{server.build.env.SERVER_MAP}}\\\"\",\r\n \"sv_register\": \"sv_register {{server.build.env.SERVER_REGISTER}}\"\r\n }\r\n }\r\n}",
|
||||||
|
"startup": "{\r\n \"done\": \" server name is \"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "^^C"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!\/bin\/bash\r\napt update\r\napt -y install curl xz-utils tar\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n A=$(curl -sSL https:\/\/ddnet.org\/downloads\/ | grep -io '<a href=['\"'\"'\"][^\"'\"'\"']*['\"'\"'\"]' | grep linux_x86_64.tar.xz | awk '{print $2}' |cut -c7- | sed 's\/.$\/\/' | head -1)\r\n DOWNLOAD_URL=https:\/\/ddnet.org\/downloads\/${A}\r\nelse\r\n A=$(curl -sSL https:\/\/ddnet.org\/downloads\/ | grep -io '<a href=['\"'\"'\"][^\"'\"'\"']*['\"'\"'\"]' | grep linux_x86_64.tar.xz | awk '{print $2}' |cut -c7- | sed 's\/.$\/\/' | grep -i ${VERSION})\r\n DOWNLOAD_URL=https:\/\/ddnet.org\/downloads\/${A}\r\nfi\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\ncurl -sSL -o ddnet_linux_x86_64.tar.xz ${DOWNLOAD_URL}\r\ntar -xf ddnet_linux_x86_64.tar.xz --strip-components=1\r\nrm ddnet_linux_x86_64.tar.xz\r\n\r\ncd \/mnt\/server\/data\r\nsed -i 's\/#\\(sv_port [0-9]\\+\\)\/\\1\/' autoexec_server.cfg\r\n\r\ncd \/mnt\/server\r\necho \"# Check \/data\/autoexec_config.cfg for more info!\" >> myServerconfig.cfg\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
|
||||||
|
"container": "debian:bullseye-slim",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Game Version",
|
||||||
|
"description": "Latest is the default, put \"nightly\" for beta, or enter the version number, for example \"17.0\".",
|
||||||
|
"env_variable": "VERSION",
|
||||||
|
"default_value": "latest",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Server name",
|
||||||
|
"description": "The name of the server",
|
||||||
|
"env_variable": "SERVER_NAME",
|
||||||
|
"default_value": "My DDNet server",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:64",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Server password",
|
||||||
|
"description": "Password for joining the server, empty for no password",
|
||||||
|
"env_variable": "SERVER_PASSWORD",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:64",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Server map",
|
||||||
|
"description": "Map to start server with",
|
||||||
|
"env_variable": "SERVER_MAP",
|
||||||
|
"default_value": "Tutorial",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:64",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Register server",
|
||||||
|
"description": "Register the server to the server list.\r\n0 is disabled\r\nipv4 is enabled listening ipv4",
|
||||||
|
"env_variable": "SERVER_REGISTER",
|
||||||
|
"default_value": "0",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|in:0,ipv4",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# Doom
|
||||||
|
Doom is a 1993 first-person shooter (FPS) game developed by id Software.
|
||||||
|
## [Zandronum](zandronum)
|
||||||
Binary file not shown.
@@ -0,0 +1,152 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2022-12-14T14:27:39+01:00",
|
||||||
|
"name": "Zandronum",
|
||||||
|
"author": "sup@libtar.de",
|
||||||
|
"description": "Zandronum is a multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software.\r\n\r\nThis egg uses the Freedoom WAD by default.",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"Debian": "ghcr.io\/parkervcp\/yolks:debian"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": ".\/zandronum-server -port {{SERVER_PORT}} -config \/home\/container\/zandronum.ini +set dmflags {{DMFLAGS}} +set dmflags2 {{DMFLAGS2}} +set zadmflags {{ZADMFLAGS}} +set compatflags {{COMPATFLAGS}} +set compatflags2 {{COMPATFLAGS2}} +set zacompatflags {{ZACOMPATFLAGS}} -iwad IWAD\/{{IWAD}} -file PWAD\/{{PWADS}} -host {{MAX_PLAYERS}} +map {{MAP}} -skill {{SKILL}} -netmode 1",
|
||||||
|
"config": {
|
||||||
|
"files": "{}",
|
||||||
|
"startup": "{\r\n \"done\": \"UDP Initialized.\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "quit"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!\/bin\/bash\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux-x86_64\" || echo \"linuxserver-armv8\")\r\n\r\necho \"Fetching latest version number of Zandronum\"\r\nversion=\"$(wget -q -O - http:\/\/zandronum.com\/download |\r\nsed -n 's\/.*The latest version is <strong>\\(.*\\)<\\\/strong>.*\/\\1\/p')\"\r\n\r\nz=\"zandronum\"$version\"-${ARCH}.tar.bz2\"\r\n\r\necho \"Downloading release $version of Zandronum.\"\r\necho \"Executing wget -nc https:\/\/zandronum.com\/downloads\/$z\"\r\nwget -nc https:\/\/zandronum.com\/downloads\/\"$z\"\r\necho \"Untar Zandronum\"\r\necho \"Executing tar -xjvf $z\"\r\ntar -xjvf \"$z\"\r\n\r\necho \"Remove useless files\"\r\nrm \"$z\"\r\nrm zandronum # This is the client, we don't need that.\r\n\r\necho \"Making zandronum-server executable\"\r\nchmod +x zandronum-server\r\n\r\n# Create IWAD and PWAD folder\r\nmkdir -p IWAD\r\nmkdir -p PWAD\r\n\r\n# Download latest freedoom for the default iwad\r\nfreedoom=$(curl -s https:\/\/api.github.com\/repos\/freedoom\/freedoom\/releases\/latest | jq .assets | jq -r .[].browser_download_url | grep -m1 -i freedoom-.*.zip)\r\n\r\necho \"$freedoom\"\r\ncurl -L -o freedoom.zip $freedoom\r\n\r\nunzip -j -o freedoom.zip '*\/*' -d IWAD\/\r\n\r\n# Removing useless files\r\nrm freedoom.zip\r\nrm IWAD\/*.html\r\nrm IWAD\/*.pdf\r\n\r\n# Download the configuration file. The server fail to generate a config by itself so we have to supply one or it will crash\r\nwget https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/doom\/zandronum\/zandronum.ini -O \/mnt\/server\/zandronum.ini\r\n\r\ntouch adminlist.txt\r\ntouch whitelist.txt\r\ntouch banlist.txt\r\n\r\nif [[ \"${GEOIP}\" == \"1\" ]]; then\r\n echo \"setting up GeoIP\"\r\n wget https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/doom\/zandronum\/GeoIP.dat -O \/mnt\/server\/GeoIP.dat\r\nfi\r\n\r\n\r\necho \"Install finished.\"",
|
||||||
|
"container": "ghcr.io\/pterodactyl\/installers:alpine",
|
||||||
|
"entrypoint": "ash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Max Players",
|
||||||
|
"description": "The maximum amount of players allowed on your game server.",
|
||||||
|
"env_variable": "MAX_PLAYERS",
|
||||||
|
"default_value": "16",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "nullable|integer|max:128",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "IWAD",
|
||||||
|
"description": "An IWAD is the main resource file for a Doom-engine game, containing all the game's original sounds, levels, and graphics.",
|
||||||
|
"env_variable": "IWAD",
|
||||||
|
"default_value": "freedoom1.wad",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:255",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "PWADS",
|
||||||
|
"description": "If you wish to use multiple PWAD you can do so by separating them with spaces.\r\n\r\nA PWAD is a WAD containing lumps of data, often used as addons. They replace in-game assets.",
|
||||||
|
"env_variable": "PWADS",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:255",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Skill",
|
||||||
|
"description": "Set the difficulty of the game.",
|
||||||
|
"env_variable": "SKILL",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|between:0,15",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "map",
|
||||||
|
"description": "The map the server should start with.",
|
||||||
|
"env_variable": "MAP",
|
||||||
|
"default_value": "e1m1",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:255",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "dmflags",
|
||||||
|
"description": "Gameplay flags. https:\/\/wiki.zandronum.com\/DMFlags",
|
||||||
|
"env_variable": "DMFLAGS",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:255",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "dmflags2",
|
||||||
|
"description": "Gameplay flags. https:\/\/wiki.zandronum.com\/DMFlags",
|
||||||
|
"env_variable": "DMFLAGS2",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:255",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "zadmflags",
|
||||||
|
"description": "Zandronum specific gameplay flags. https:\/\/wiki.zandronum.com\/DMFlags",
|
||||||
|
"env_variable": "ZADMFLAGS",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:255",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "compatflags",
|
||||||
|
"description": "Compatibility flags. https:\/\/wiki.zandronum.com\/DMFlags",
|
||||||
|
"env_variable": "COMPATFLAGS",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:255",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "compatflags2",
|
||||||
|
"description": "Compatibility flags. https:\/\/wiki.zandronum.com\/DMFlags",
|
||||||
|
"env_variable": "COMPATFLAGS2",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:255",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "zacompatflags",
|
||||||
|
"description": "Zandronum specific compatibility flags. https:\/\/wiki.zandronum.com\/DMFlags",
|
||||||
|
"env_variable": "ZACOMPATFLAGS",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:255",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Enable GeoIP",
|
||||||
|
"description": "GeoIP is used to identify the country of the client's ip address",
|
||||||
|
"env_variable": "GEOIP",
|
||||||
|
"default_value": "1",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|boolean",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
# Zandronum
|
||||||
|
Zandronum is a multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software.
|
||||||
|
|
||||||
|
This egg uses the [Freedoom](https://freedoom.github.io/) WAD by default.
|
||||||
|
|
||||||
|
### Server Ports
|
||||||
|
|
||||||
|
Zandronum requires a single port:
|
||||||
|
|
||||||
|
| Port | default |
|
||||||
|
|---------|----------|
|
||||||
|
| Game | 10666 |
|
||||||
@@ -0,0 +1,231 @@
|
|||||||
|
# These are the directories to automatically search for IWADs.
|
||||||
|
# Each directory should be on a separate line, preceded by Path=
|
||||||
|
[IWADSearch.Directories]
|
||||||
|
Path=.
|
||||||
|
Path=./IWAD/
|
||||||
|
|
||||||
|
# These are the directories to search for wads added with the -file
|
||||||
|
# command line parameter, if they cannot be found with the path
|
||||||
|
# as-is. Layout is the same as for IWADSearch.Directories
|
||||||
|
[FileSearch.Directories]
|
||||||
|
Path=.
|
||||||
|
Path=./PWAD/
|
||||||
|
|
||||||
|
# Files to automatically execute when running the corresponding game.
|
||||||
|
# Each file should be on its own line, preceded by Path=
|
||||||
|
|
||||||
|
[Doom.AutoExec]
|
||||||
|
Path=/home/container/doom.cfg
|
||||||
|
|
||||||
|
[Heretic.AutoExec]
|
||||||
|
Path=/home/container/heretic.cfg
|
||||||
|
|
||||||
|
[Hexen.AutoExec]
|
||||||
|
Path=/home/container/hexen.cfg
|
||||||
|
|
||||||
|
[Strife.AutoExec]
|
||||||
|
Path=/home/container/strife.cfg
|
||||||
|
|
||||||
|
[Chex.AutoExec]
|
||||||
|
Path=/home/container/chex.cfg
|
||||||
|
|
||||||
|
# WAD files to always load. These are loaded after the IWAD but before
|
||||||
|
# any files added with -file. Place each file on its own line, preceded
|
||||||
|
# by Path=
|
||||||
|
[Global.Autoload]
|
||||||
|
|
||||||
|
# Wad files to automatically load depending on the game and IWAD you are
|
||||||
|
# playing. You may have have files that are loaded for all similar IWADs
|
||||||
|
# (the game) and files that are only loaded for particular IWADs. For example,
|
||||||
|
# any files listed under Doom.Autoload will be loaded for any version of Doom,
|
||||||
|
# but files listed under Doom2.Autoload will only load when you are
|
||||||
|
# playing Doom 2.
|
||||||
|
|
||||||
|
[Doom.Autoload]
|
||||||
|
|
||||||
|
[Doom1.Autoload]
|
||||||
|
|
||||||
|
[Doom2.Autoload]
|
||||||
|
|
||||||
|
[TNT.Autoload]
|
||||||
|
|
||||||
|
[Plutonia.Autoload]
|
||||||
|
|
||||||
|
[Freedoom.Autoload]
|
||||||
|
|
||||||
|
[Freedoom1.Autoload]
|
||||||
|
|
||||||
|
[FreeDM.Autoload]
|
||||||
|
|
||||||
|
[Heretic.Autoload]
|
||||||
|
|
||||||
|
[Hexen.Autoload]
|
||||||
|
|
||||||
|
[HexenDK.Autoload]
|
||||||
|
|
||||||
|
[HexenDemo.Autoload]
|
||||||
|
|
||||||
|
[Strife.Autoload]
|
||||||
|
|
||||||
|
[Chex.Autoload]
|
||||||
|
|
||||||
|
[Chex3.Autoload]
|
||||||
|
|
||||||
|
[UrbanBrawl.Autoload]
|
||||||
|
|
||||||
|
[Harmony.Autoload]
|
||||||
|
|
||||||
|
[LastRun]
|
||||||
|
Version=210
|
||||||
|
Version-ZANDRONUM=181
|
||||||
|
|
||||||
|
[GlobalSettings]
|
||||||
|
gus_memsize=0
|
||||||
|
midi_dmxgus=true
|
||||||
|
gus_patchdir=
|
||||||
|
midi_timiditylike=false
|
||||||
|
midi_voices=32
|
||||||
|
midi_config=timidity.cfg
|
||||||
|
fluid_chorus_type=0
|
||||||
|
fluid_chorus_depth=8
|
||||||
|
fluid_chorus_speed=0.3
|
||||||
|
fluid_chorus_level=1.2
|
||||||
|
fluid_chorus_voices=3
|
||||||
|
fluid_reverb_level=0.57
|
||||||
|
fluid_reverb_width=0.76
|
||||||
|
fluid_reverb_damping=0.23
|
||||||
|
fluid_reverb_roomsize=0.61
|
||||||
|
fluid_threads=1
|
||||||
|
fluid_samplerate=0
|
||||||
|
fluid_interp=1
|
||||||
|
fluid_voices=128
|
||||||
|
fluid_chorus=true
|
||||||
|
fluid_reverb=true
|
||||||
|
fluid_gain=0.5
|
||||||
|
fluid_patchset=
|
||||||
|
opl_core=0
|
||||||
|
opl_numchips=2
|
||||||
|
timidity_frequency=22050
|
||||||
|
timidity_pipe=90
|
||||||
|
timidity_mastervolume=1
|
||||||
|
timidity_byteswap=false
|
||||||
|
timidity_8bit=false
|
||||||
|
timidity_stereo=true
|
||||||
|
timidity_reverb=0
|
||||||
|
timidity_chorus=0
|
||||||
|
timidity_extargs=
|
||||||
|
timidity_exe=timidity
|
||||||
|
snd_mididevice=-1
|
||||||
|
spc_amp=1.875
|
||||||
|
mod_autochip_scan_threshold=12
|
||||||
|
mod_autochip_size_scan=500
|
||||||
|
mod_autochip_size_force=100
|
||||||
|
mod_autochip=false
|
||||||
|
mod_interp=1
|
||||||
|
mod_volramp=0
|
||||||
|
mod_samplerate=0
|
||||||
|
mod_dumb=true
|
||||||
|
snd_sfxvolume=1
|
||||||
|
snd_output=default
|
||||||
|
snd_buffersize=0
|
||||||
|
snd_samplerate=0
|
||||||
|
snd_musicvolume=0.5
|
||||||
|
snd_waterlp=250
|
||||||
|
snd_midipatchset=
|
||||||
|
snd_output_format=PCM-16
|
||||||
|
snd_speakermode=Auto
|
||||||
|
snd_resampler=Linear
|
||||||
|
snd_waterreverb=true
|
||||||
|
snd_hrtf=false
|
||||||
|
snd_buffercount=0
|
||||||
|
snd_driver=0
|
||||||
|
opl_fullpan=true
|
||||||
|
vid_contrast=1
|
||||||
|
vid_brightness=0
|
||||||
|
vid_tft=true
|
||||||
|
m_showinputgrid=false
|
||||||
|
m_show_backbutton=0
|
||||||
|
m_use_mouse=1
|
||||||
|
show_messages=true
|
||||||
|
mouse_sensitivity=1
|
||||||
|
r_drawspectatingstring=true
|
||||||
|
map_point_coordinates=true
|
||||||
|
vid_aspect=0
|
||||||
|
vid_nowidescreen=false
|
||||||
|
vid_refreshrate=0
|
||||||
|
vid_vsync=false
|
||||||
|
vid_defbits=8
|
||||||
|
vid_defheight=480
|
||||||
|
vid_defwidth=640
|
||||||
|
Gamma=1
|
||||||
|
masterhostname=master.zandronum.com
|
||||||
|
sv_showwarnings=false
|
||||||
|
statfile=zdoomstat.txt
|
||||||
|
savestatistics=0
|
||||||
|
snd_flipstereo=false
|
||||||
|
snd_channels=32
|
||||||
|
r_columnmethod=1
|
||||||
|
r_quakeintensity=1
|
||||||
|
cl_oldfreelooklimit=false
|
||||||
|
cl_spectatormove=1
|
||||||
|
cl_noprediction=false
|
||||||
|
telezoom=true
|
||||||
|
r_fakecontrast=1
|
||||||
|
chase_dist=90
|
||||||
|
chase_height=-8
|
||||||
|
gl_cachetime=0.6
|
||||||
|
gl_cachenodes=true
|
||||||
|
nomonsterinterpolation=false
|
||||||
|
authhostname=auth.zandronum.com:16666
|
||||||
|
png_gamma=0
|
||||||
|
png_level=5
|
||||||
|
screenshot_dir=
|
||||||
|
screenshot_type=png
|
||||||
|
screenshot_quiet=false
|
||||||
|
use_joystick=false
|
||||||
|
autosavecount=4
|
||||||
|
disableautosave=0
|
||||||
|
autosavenum=0
|
||||||
|
smooth_mouse=false
|
||||||
|
cl_telespy=false
|
||||||
|
m_side=2
|
||||||
|
m_forward=1
|
||||||
|
m_yaw=1
|
||||||
|
m_pitch=1
|
||||||
|
lookstrafe=false
|
||||||
|
freelook=true
|
||||||
|
invertmouse=false
|
||||||
|
cl_run=true
|
||||||
|
demo_compress=true
|
||||||
|
save_dir=
|
||||||
|
longsavemessages=true
|
||||||
|
storesavepic=true
|
||||||
|
nofilecompression=false
|
||||||
|
cl_capfps=false
|
||||||
|
defaultiwad=
|
||||||
|
queryiwad=true
|
||||||
|
cl_useskulltagmouse=false
|
||||||
|
demo_pure=true
|
||||||
|
con_ctrl_d=
|
||||||
|
snd_announcervolume=1
|
||||||
|
cl_allowmultipleannouncersounds=true
|
||||||
|
cl_alwaysplayfragsleft=false
|
||||||
|
showendoom=0
|
||||||
|
bgamma=1
|
||||||
|
ggamma=1
|
||||||
|
rgamma=1
|
||||||
|
vid_asyncblit=true
|
||||||
|
vid_displaybits=8
|
||||||
|
mouse_capturemode=1
|
||||||
|
cl_soundwhennotactive=true
|
||||||
|
sdl_nokeyrepeat=false
|
||||||
|
m_filter=false
|
||||||
|
m_noprescale=false
|
||||||
|
use_mouse=true
|
||||||
|
vid_winscale=1
|
||||||
|
fullscreen=false
|
||||||
|
vid_maxfps=200
|
||||||
|
vid_renderer=1
|
||||||
|
|
||||||
|
[GlobalSettings.Unknown]
|
||||||
|
|
||||||
@@ -18,3 +18,5 @@ ET: Legacy requires a single port
|
|||||||
| Port | default |
|
| Port | default |
|
||||||
|---------|---------|
|
|---------|---------|
|
||||||
| Game | 27960 |
|
| Game | 27960 |
|
||||||
|
|---------|---------|
|
||||||
|
| Server | 27950 |
|
||||||
|
|||||||
@@ -24,3 +24,7 @@ Factorio requires a single port
|
|||||||
| Port | default |
|
| Port | default |
|
||||||
|---------|---------|
|
|---------|---------|
|
||||||
| Game | 34197 |
|
| Game | 34197 |
|
||||||
|
|
||||||
|
## ARM64
|
||||||
|
There is a factorio egg for ARM64 machines that uses the box64 emulator.
|
||||||
|
If you are on **AMD64** Like most of you download the normal non ARM64 egg!
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
# Clusterio
|
||||||
|
|
||||||
|
*A Note on terminology. The developers of Clustorio are using the rather outdated Master/Slave terms for Primary/Secondary or Management/Processing nodes. We will use them in this guide and egg to avoid confusion, but would prefer a more modern set of terminology.*
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
Clusterio (https://github.com/clusterio/clusterio) is a clustered Factorio server manager that provides the tooling for implementing cross server interactions in Factorio.
|
||||||
|
It was previously best known for implementing cross server transfer and cloud storage of items via teleporter chests.
|
||||||
|
But this functionality has been pulled out of Clusterio into its own plugin for Clusterio named [Subspace Storage](https://github.com/clusterio/subspace_storage).
|
||||||
|
|
||||||
|
By itself Clusterio doesn't change the gameplay in any way, you could even use Clusterio to manage completely vanilla Factorio servers.
|
||||||
|
Plugins do the work of modding in the visible changes into the game, see the [Plugins section](#plugins) for ready-made plugins you can install into a Clusterio cluster.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Clustered Factorio server management allowing you manage the running of Factorio servers across a fleet of physical servers from both a web interface and a command line interface.
|
||||||
|
|
||||||
|
- User list management for synchronizing in-game admins, whitelisted users, and bans to all the servers in the cluster.
|
||||||
|
|
||||||
|
- Integrated support for exporting statistics for the whole cluster to Prometheus via a single metrics endpoint.
|
||||||
|
|
||||||
|
- Extensive plugin support for adding your own cross server features to Factorio using Clusterio's communication backbone.
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
Clusterio uses a Master/Slave system setup, with the Master server running the Web UI and controlling which Slaves run which Instances.
|
||||||
|
|
||||||
|
The Master server runs a web server that needs to be reachable for cluster management by the user, and by the other nodes to manage them.
|
||||||
|
|
||||||
|
The Slave server runs the factorio server, and will need any mods manually importing at this time, including the Factorio mods for the Clustorio Library(https://mods.factorio.com/mod/clusterio_lib) and Subspace Storage(https://mods.factorio.com/mod/subspace_storage).
|
||||||
|
|
||||||
|
Both only require a single port each.
|
||||||
|
|
||||||
|
Server Mode controls if the server is a master or slave, and each varaible is labeled as required for Master, Slave or All. Please ensure you fill in all required variables.
|
||||||
|
|
||||||
|
Set up the master server first, and from there you can generate the Master URL and Master Token required for the slave servers to connect.
|
||||||
|
|
||||||
|
Additional configuration options can be found in config-master.json and config-slave.json as relevant.
|
||||||
|
|
||||||
|
Changes to the Cluster will only be written out to the database on a graceful stop.
|
||||||
|
|
||||||
|
## Server Ports
|
||||||
|
|
||||||
|
Clusterio requires a single port
|
||||||
|
|
||||||
|
| Port | default |
|
||||||
|
|------------|------------|
|
||||||
|
| Master HTTP| 8081 |
|
||||||
|
| Slave Game | 34197 |
|
||||||
@@ -0,0 +1,116 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2022-10-05T19:06:42-04:00",
|
||||||
|
"name": "Clusterio",
|
||||||
|
"author": "psychoalex@thevcbc.com",
|
||||||
|
"description": "Clusterio is a clustered Factorio server manager that provides the tooling for implementing cross server interactions in Factorio. It was previously best known for implementing cross server transfer and cloud storage of items via teleporter chests. But this functionality has been pulled out of Clusterio into its own plugin for Clusterio named Subspace Storage.\r\n\r\nBy itself Clusterio doesn't change the gameplay in any way, you could even use Clusterio to manage completely vanilla Factorio servers. Plugins do the work of modding in the visible changes into the game, see the Plugins section for ready-made plugins you can install into a Clusterio cluster.\r\n\r\nA Note on terminology. The developers of Clustorio are using the rather outdated Master\/Slave terms for Primary\/Secondary or Management\/Processing nodes. We will use them in this guide and egg to avoid confusion, but would prefer a more modern set of terminology.",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"ghcr.io\/parkervcp\/yolks:nodejs_17": "ghcr.io\/parkervcp\/yolks:nodejs_17",
|
||||||
|
"ghcr.io\/parkervcp\/yolks:nodejs_16": "ghcr.io\/parkervcp\/yolks:nodejs_16",
|
||||||
|
"ghcr.io\/parkervcp\/yolks:nodejs_15": "ghcr.io\/parkervcp\/yolks:nodejs_15",
|
||||||
|
"ghcr.io\/parkervcp\/yolks:nodejs_14": "ghcr.io\/parkervcp\/yolks:nodejs_14",
|
||||||
|
"ghcr.io\/parkervcp\/yolks:nodejs_12": "ghcr.io\/parkervcp\/yolks:nodejs_12"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": "exec .\/node_modules\/.bin\/clusterio{{SERVER_MODE}} run",
|
||||||
|
"config": {
|
||||||
|
"files": "{\r\n \"config-master.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"groups[0].fields.http_port\": \"{{server.build.default.port}}\",\r\n \"groups[0].fields.name\": \"{{server.build.env.CLUSTER_NAME}}\"\r\n }\r\n },\r\n \"config-slave.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"groups[0].fields.master_url\": \"{{server.build.env.MASTER_URL}}\",\r\n \"groups[0].fields.master_token\": \"{{server.build.env.MASTER_TOKEN}}\",\r\n \"groups[0].fields.public_address\": \"{{server.build.default.ip}}\"\r\n }\r\n }\r\n}",
|
||||||
|
"startup": "{\r\n \"done\": \"Started\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "^c"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!\/bin\/bash\r\n# Clusterio 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\ncase \"${SERVER_MODE}\" in\r\n\r\n \"master\")\r\n echo -e \"Initialising Clustorio In Master mode\"\r\n npm init \"@clusterio\" --allow-install-as-root --mode \"${SERVER_MODE}\" --download-headless --log-level \"${LOG_LEVEL}\" --admin \"${ADMIN_STRING}\" --public-address \"${SERVER_IP}\":\"${SERVER_PORT}\" --plugins ${PLUGINS}\r\n\t;;\r\n\r\n \"slave\")\r\n echo -e \"Initialising Clustorio In Slave mode\"\r\n\tnpm init \"@clusterio\" --allow-install-as-root --mode \"${SERVER_MODE}\" --download-headless --log-level \"${LOG_LEVEL}\" --slave-name \"${SLAVE_NAME}\" --public-address \"${SERVER_IP}\" --master-url \"${MASTER_URL}\" --master-token \"${MASTER_TOKEN}\" --plugins ${PLUGINS}\r\n ;;\r\n \r\nesac\r\n\r\necho -e \"install complete\"\r\nexit 0",
|
||||||
|
"container": "node:14-buster-slim",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Server Mode",
|
||||||
|
"description": "Set's the cluster operation mode of the server, can be either \"master\" or \"slave\". This is better thought of as Management or Gameserver nodes.\r\n\r\nRequired on:\r\nAll",
|
||||||
|
"env_variable": "SERVER_MODE",
|
||||||
|
"default_value": "master",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|in:master,slave",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Log Level",
|
||||||
|
"description": "Options: \"none\", \"fatal\", \"error\", \"warn\", \"audit\", \"info\", \"verbose\"\r\n\r\nRequired on:\r\nAll",
|
||||||
|
"env_variable": "LOG_LEVEL",
|
||||||
|
"default_value": "info",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|in:none,fatal,error,warn,audit,info,verbose",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Server Admin",
|
||||||
|
"description": "Superadmin account name\r\n\r\nRequired on:\r\nMaster",
|
||||||
|
"env_variable": "ADMIN_STRING",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:64",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Slave Name",
|
||||||
|
"description": "Slave name in the Master Web UI\r\n\r\nRequired on:\r\nSlave",
|
||||||
|
"env_variable": "SLAVE_NAME",
|
||||||
|
"default_value": "Your Sub-Server",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Master URL",
|
||||||
|
"description": "Connection URL to the Master server, can be an internal address if you have allocated an additional internal port to the Master Server.\r\n\r\nExample: http:\/\/yourip:yourport\/\r\n\r\nRequired on:\r\nSlave",
|
||||||
|
"env_variable": "MASTER_URL",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:64",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Master Token",
|
||||||
|
"description": "Authentication token used to connect to the Master server, Must be generated through the Master Web UI after setting up and logging into the Master Web UI using the admin auth token generated when setting up the Master.\r\n\r\nRequired on:\r\nSlave",
|
||||||
|
"env_variable": "MASTER_TOKEN",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:256",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Plugins",
|
||||||
|
"description": "Clusterio Plugins to install, space separate list.\r\n\r\nExample:\r\n@clusterio\/plugin-global_chat\r\n@clusterio\/plugin-research_sync\r\n@clusterio\/plugin-statistics_exporter\r\n\r\nCurrent available clusterio plugins include:\r\n@clusterio\/plugin-global_chat\r\n@clusterio\/plugin-research_sync\r\n@clusterio\/plugin-statistics_exporter\r\n@clusterio\/plugin-subspace_storage (requires the mod to be installed on the slave)\r\n@clusterio\/plugin-player_auth\r\n@clusterio\/plugin-inventory_sync\r\n@hornwitser\/server_select\r\n\r\nRequired on:\r\nAll",
|
||||||
|
"env_variable": "PLUGINS",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:512",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Cluster Name",
|
||||||
|
"description": "The Name of your Cluster Master server.\r\n\r\nRequired:\r\nMaster",
|
||||||
|
"env_variable": "CLUSTER_NAME",
|
||||||
|
"default_value": "Your Cluster",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,192 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2023-11-18T10:08:36+01:00",
|
||||||
|
"name": "Factorio ARM64",
|
||||||
|
"author": "parker@parkervcp.com",
|
||||||
|
"description": "The vanilla Factorio server.\r\n\r\nhttps:\/\/www.factorio.com\/",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"Box64": "ghcr.io\/parkervcp\/yolks:box64"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": "if [ ! -f \".\/saves\/{{SAVE_NAME}}.zip\" ]; then box64 .\/bin\/x64\/factorio --create .\/saves\/{{SAVE_NAME}}.zip --map-gen-settings data\/map-gen-settings.json --map-settings data\/map-settings.json; fi;\r\nbox64 .\/bin\/x64\/factorio --port {{SERVER_PORT}} --server-settings data\/server-settings.json --start-server saves\/{{SAVE_NAME}}.zip",
|
||||||
|
"config": {
|
||||||
|
"files": "{\r\n \"data\/server-settings.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"description\": \"{{server.build.env.SERVER_DESC}}\",\r\n \"max_players\": \"{{server.build.env.MAX_SLOTS}}\",\r\n \"username\": \"{{server.build.env.SERVER_USERNAME}}\",\r\n \"token\": \"{{server.build.env.SERVER_TOKEN}}\",\r\n \"autosave_interval\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"autosave_slots\": \"{{server.build.env.SAVE_SLOTS}}\",\r\n \"afk_autokick_interval\": \"{{server.build.env.AFK_KICK}}\"\r\n }\r\n }\r\n}",
|
||||||
|
"startup": "{\r\n \"done\": \"Hosting game at\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "\/quit"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!\/bin\/bash\r\n# Factorio Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update \r\napt install -y curl tar xz-utils jq\r\n\r\nVERSION_JSON=$(curl -sSL https:\/\/factorio.com\/api\/latest-releases)\r\n\r\nlatest_stable=$(echo $VERSION_JSON | jq -r '.stable.headless')\r\nlatest_experimental=$(echo $VERSION_JSON | jq -r '.experimental.headless')\r\n\r\nif [ -z \"${FACTORIO_VERSION}\" ] || [ \"${FACTORIO_VERSION}\" == \"latest\" ]; then\r\n DL_VERSION=$latest_stable\r\nelif [ \"${FACTORIO_VERSION}\" == \"experimental\" ]; then\r\n DL_VERSION=$latest_experimental\r\nelse\r\n DL_VERSION=${FACTORIO_VERSION}\r\nfi\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\necho -e \"\\n running 'curl -sL https:\/\/www.factorio.com\/get-download\/${DL_VERSION}\/headless\/linux64 -o factorio-${DL_VERSION}' \\n\"\r\n\r\ncurl -sL https:\/\/www.factorio.com\/get-download\/${DL_VERSION}\/headless\/linux64 -o factorio-${DL_VERSION}\r\n\r\ntar -xf factorio-${DL_VERSION} --strip-components=1 -C \/mnt\/server\r\n\r\nrm factorio-${DL_VERSION}\r\n\r\nif [ -e data\/map-gen-settings.json ]; then\r\n echo \"map-gen exists\"\r\nelse\r\n echo \"copying map-gen default settings\"\r\n mv data\/map-gen-settings.example.json data\/map-gen-settings.json\r\nfi\r\n\r\nif [ -e data\/server-settings.json ]; then\r\n echo \"server settings exists\"\r\nelse\r\n echo \"copying server default settings\"\r\n mv data\/server-settings.example.json data\/server-settings.json\r\nfi\r\n\r\nif [ -e map-settings.json ]; then\r\n echo \"map settings exists\"\r\nelse\r\n echo \"copying map default settings\"\r\n mv data\/map-settings.example.json data\/map-settings.json\r\nfi\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
|
||||||
|
"container": "ghcr.io\/parkervcp\/installers:debian",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Factorio Version",
|
||||||
|
"description": "Which version of Factorio to install and use.",
|
||||||
|
"env_variable": "FACTORIO_VERSION",
|
||||||
|
"default_value": "latest",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|between:3,12",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Maximum Slots",
|
||||||
|
"description": "Total number of slots to allow on the server.",
|
||||||
|
"env_variable": "MAX_SLOTS",
|
||||||
|
"default_value": "20",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "required|numeric|digits_between:1,3",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Save Name",
|
||||||
|
"description": "The save name for the server.",
|
||||||
|
"env_variable": "SAVE_NAME",
|
||||||
|
"default_value": "gamesave",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "alpha_dash|between:1,100",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Server Token",
|
||||||
|
"description": "Your factorio.com token, it is required for your server to be visible in the public server list.",
|
||||||
|
"env_variable": "SERVER_TOKEN",
|
||||||
|
"default_value": "undefined",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "alpha_num|max:100",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Server Name",
|
||||||
|
"description": "Name of the game as it will appear in the game listing",
|
||||||
|
"env_variable": "SERVER_NAME",
|
||||||
|
"default_value": "Factorio Server",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:100",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Server Description",
|
||||||
|
"description": "Description of the game that will appear in the listing.",
|
||||||
|
"env_variable": "SERVER_DESC",
|
||||||
|
"default_value": "Description",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:200",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Server Username",
|
||||||
|
"description": "Username used for the server",
|
||||||
|
"env_variable": "SERVER_USERNAME",
|
||||||
|
"default_value": "unnamed",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:40",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Auto Save Interval",
|
||||||
|
"description": "Time between auto saves specified in minutes",
|
||||||
|
"env_variable": "SAVE_INTERVAL",
|
||||||
|
"default_value": "10",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|numeric|digits_between:1,3",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Auto Save Slots",
|
||||||
|
"description": "The number of auto saves to keep.",
|
||||||
|
"env_variable": "SAVE_SLOTS",
|
||||||
|
"default_value": "5",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|numeric|digits_between:1,3",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "AFK Kick",
|
||||||
|
"description": "Time specified in minutes to kick AFK players.\r\n0 is off",
|
||||||
|
"env_variable": "AFK_KICK",
|
||||||
|
"default_value": "0",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|numeric|digits_between:1,3",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BOX64_DYNAREC_SAFEFLAGS",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "BOX64_DYNAREC_SAFEFLAGS",
|
||||||
|
"default_value": "0",
|
||||||
|
"user_viewable": false,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "required|numeric|in:0",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BOX64_DYNAREC_BIGBLOCK",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "BOX64_DYNAREC_BIGBLOCK",
|
||||||
|
"default_value": "2",
|
||||||
|
"user_viewable": false,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "required|numeric|in:2",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BOX64_DYNAREC_FORWARD",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "BOX64_DYNAREC_FORWARD",
|
||||||
|
"default_value": "1024",
|
||||||
|
"user_viewable": false,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "required|numeric|in:1024",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BOX64_DYNAREC_CALLRET",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "BOX64_DYNAREC_CALLRET",
|
||||||
|
"default_value": "1",
|
||||||
|
"user_viewable": false,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "required|numeric|in:1",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BOX64_DYNAREC_FASTROUND",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "BOX64_DYNAREC_FASTROUND",
|
||||||
|
"default_value": "0",
|
||||||
|
"user_viewable": false,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "required|numeric|in:0",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BOX64_DYNAREC_ALIGNED_ATOMICS",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "BOX64_DYNAREC_ALIGNED_ATOMICS",
|
||||||
|
"default_value": "1",
|
||||||
|
"user_viewable": false,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "required|numeric|in:1",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,31 +1,42 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1",
|
"version": "PTDL_v2",
|
||||||
"update_url": null
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2021-02-09T11:53:05-08:00",
|
"exported_at": "2023-02-23T17:52:24+01:00",
|
||||||
"name": "Tachyon",
|
"name": "Tachyon",
|
||||||
"author": "alex.chang-lam@protonmail.com",
|
"author": "alex.chang-lam@protonmail.com",
|
||||||
"description": "A multiplayer version of FTL.",
|
"description": "A multiplayer version of FTL.",
|
||||||
"features": null,
|
"features": null,
|
||||||
"images": [
|
"docker_images": {
|
||||||
"quay.io\/pterodactyl\/core:java-11"
|
"Java_11": "ghcr.io\/pterodactyl\/yolks:java_11"
|
||||||
],
|
},
|
||||||
"file_denylist": "",
|
"file_denylist": [],
|
||||||
"startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar TachyonsCEServer.jar",
|
"startup": "java -Xms128M -XX:MaxRAMPercentage=95.0 -Dterminal.jline=false -Dterminal.ansi=true -jar TachyonsCEServer.jar",
|
||||||
"config": {
|
"config": {
|
||||||
"files": "{}",
|
"files": "{\r\n \"config.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"SERVER_PORT=\": \"SERVER_PORT={{server.build.default.port}}\"\r\n }\r\n }\r\n}",
|
||||||
"startup": "{\r\n \"done\": \"[Server] SERVER STARTED.\",\r\n \"userInteraction\": []\r\n}",
|
"startup": "{\r\n \"done\": \"[Server] SERVER STARTED.\"\r\n}",
|
||||||
"logs": "{}",
|
"logs": "{}",
|
||||||
"stop": "\/exit"
|
"stop": "\/exit"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"installation": {
|
"installation": {
|
||||||
"script": "#! \/bin\/bash\r\n\r\nGITHUB_PACKAGE=Dav-Edward\/TachyonsCE\r\nMATCH=TachyonsCE\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\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 -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 -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 -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##*\/}\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#pull version and format folder name for renaming\r\nFOLDER=$(echo ${LATEST_JSON} | jq .tag_name | tr -d 'v\"')\r\n\r\n#move all server files out\r\ncp -r .\/TachyonsCE_${FOLDER}\/server\/* \/mnt\/server\r\n\r\n#remove zip and unneeded client-side and dev files\r\nrm -rf TachyonsCE_${FOLDER}\r\nrm ${VALIDATED_URL##*\/}\r\n\r\nchmod +x TachyonsCEServer.jar",
|
"script": "#!\/bin\/bash\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\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Dav-Edward\/TachyonsCE\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Dav-Edward\/TachyonsCE\/releases\")\r\nMATCH=TachyonsCE\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 -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 -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 -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 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 --progress-bar -sSL -o ${DOWNLOAD_URL##*\/} ${DOWNLOAD_URL}\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. Exeting\"\r\n exit 2 \r\nfi\r\n\r\n#move all server files out\r\nmv .\/server\/* .\/\r\n\r\n#remove zip and unneeded client-side and dev files\r\nrm -rf server\/ JRE\/ client\/ *.zip\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
|
||||||
"container": "debian:buster-slim",
|
"container": "debian:bullseye-slim",
|
||||||
"entrypoint": "bash"
|
"entrypoint": "bash"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"variables": []
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Version",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "VERSION",
|
||||||
|
"default_value": "latest",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:32",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@@ -5,17 +5,24 @@
|
|||||||
[FiveM](https://fivem.net/)
|
[FiveM](https://fivem.net/)
|
||||||
FiveM is a modification for Grand Theft Auto V enabling you to play multiplayer on customized dedicated servers.
|
FiveM is a modification for Grand Theft Auto V enabling you to play multiplayer on customized dedicated servers.
|
||||||
|
|
||||||
|
[ragecoop](https://ragecoop.online/)
|
||||||
|
ragecoop Drive around the interstate with your buddy, enjoy GTAs environment, make own missions and events or just chill in Grove Street! 🌐
|
||||||
|
|
||||||
[Rage MP](https://rage.mp/)
|
[Rage MP](https://rage.mp/)
|
||||||
RAGE Multiplayer is an multiplayer modification for Grand Theft Auto V that is alternative to GTA Online.
|
RAGE Multiplayer is an multiplayer modification for Grand Theft Auto V that is alternative to GTA Online.
|
||||||
|
|
||||||
[alt:V](https://altv.mp)
|
[alt:V](https://altv.mp)
|
||||||
alt:V Multiplayer a third-party multiplayer modification for Grand Theft Auto: V
|
alt:V Multiplayer a third-party multiplayer modification for Grand Theft Auto: V
|
||||||
|
|
||||||
|
|
||||||
## San Andreas
|
## San Andreas
|
||||||
|
|
||||||
[GTA SA:MP](https://www.sa-mp.com/)
|
[GTA SA:MP](https://www.sa-mp.com/)
|
||||||
SA-MP is a free Massively Multiplayer Online game mod for the PC version of Rockstar Games Grand Theft Auto: San Andreas (tm).
|
SA-MP is a free Massively Multiplayer Online game mod for the PC version of Rockstar Games Grand Theft Auto: San Andreas (tm).
|
||||||
|
|
||||||
|
[OpenMp](https://www.open.mp/)
|
||||||
|
A multiplayer mod for Grand Theft Auto: San Andreas that is fully backwards compatible with San Andreas Multiplayer.
|
||||||
|
|
||||||
[MTA SA](https://mtasa.com/)
|
[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.
|
What more could you want? Multi Theft Auto provides the best online Grand Theft Auto experience there is. Read on to find out more.
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1,11 +1,16 @@
|
|||||||
# FiveM
|
# FiveM
|
||||||
|
|
||||||
|
## Supported architecture
|
||||||
|
|
||||||
|
FiveM **ONLY** supports **amd64**. **arm64** is **NOT** supported (like Oracle free cloud)
|
||||||
|
|
||||||
|
|
||||||
## Note on FiveM support from Pteroadactyl
|
## Note on FiveM support from Pteroadactyl
|
||||||
|
|
||||||
Pterodactyl will not be providing support for FiveM. You are free to run a FiveM server but no support will be provided in the Pterodactyl Discord, check the discord annoucement below for details.
|
Pterodactyl will not be providing support for FiveM. You are free to run a FiveM server but no support will be provided in the Pterodactyl Discord, check the discord annoucement below for details.
|
||||||
|
|
||||||
Worth a read if you plan on running a FiveM server
|
Worth a read if you plan on running a FiveM server
|
||||||
[Pterodactyl Discord Announcement](https://ptb.discord.com/channels/122900397965705216/124919575534895105/869733533495746560)
|
[Pterodactyl Discord Announcement](https://discord.com/channels/122900397965705216/124919575534895105/869733533495746560)
|
||||||
|
|
||||||
## From the [FiveM](https://fivem.net/) Site
|
## From the [FiveM](https://fivem.net/) Site
|
||||||
|
|
||||||
|
|||||||
@@ -1,29 +1,29 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1",
|
"version": "PTDL_v2",
|
||||||
"update_url": null
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2022-01-11T10:14:56-05:00",
|
"exported_at": "2023-02-19T12:54:36+01:00",
|
||||||
"name": "FiveM",
|
"name": "FiveM",
|
||||||
"author": "parker@parkervcp.com",
|
"author": "parker@parkervcp.com",
|
||||||
"description": "A new FiveM egg for the latest builds due to recent changes in FiveM",
|
"description": "A new FiveM egg for the latest builds due to recent changes in FiveM",
|
||||||
"features": null,
|
"features": null,
|
||||||
"images": [
|
"docker_images": {
|
||||||
"quay.io\/parkervcp\/pterodactyl-images:base_debian"
|
"ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian"
|
||||||
],
|
},
|
||||||
"file_denylist": [],
|
"file_denylist": [],
|
||||||
"startup": "$(pwd)\/alpine\/opt\/cfx-server\/ld-musl-x86_64.so.1 --library-path \"$(pwd)\/alpine\/usr\/lib\/v8\/:$(pwd)\/alpine\/lib\/:$(pwd)\/alpine\/usr\/lib\/\" -- $(pwd)\/alpine\/opt\/cfx-server\/FXServer +set citizen_dir $(pwd)\/alpine\/opt\/cfx-server\/citizen\/ +set sv_licenseKey {{FIVEM_LICENSE}} +set steam_webApiKey {{STEAM_WEBAPIKEY}} +set sv_maxplayers {{MAX_PLAYERS}} +set serverProfile default +set txAdminPort {{TXADMIN_PORT}} $( [ \"$TXADMIN_ENABLE\" == \"1\" ] || printf %s '+exec server.cfg' )",
|
"startup": "$(pwd)\/alpine\/opt\/cfx-server\/ld-musl-x86_64.so.1 --library-path \"$(pwd)\/alpine\/usr\/lib\/v8\/:$(pwd)\/alpine\/lib\/:$(pwd)\/alpine\/usr\/lib\/\" -- $(pwd)\/alpine\/opt\/cfx-server\/FXServer +set citizen_dir $(pwd)\/alpine\/opt\/cfx-server\/citizen\/ +set sv_licenseKey {{FIVEM_LICENSE}} +set steam_webApiKey {{STEAM_WEBAPIKEY}} +set sv_maxplayers {{MAX_PLAYERS}} +set serverProfile default +set txAdminPort {{TXADMIN_PORT}} $( [ \"$TXADMIN_ENABLE\" == \"1\" ] || printf %s '+exec server.cfg' )",
|
||||||
"config": {
|
"config": {
|
||||||
"files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"endpoint_add_tcp\": \"endpoint_add_tcp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"endpoint_add_udp\": \"endpoint_add_udp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"sv_hostname\": \"sv_hostname \\\"{{server.build.env.SERVER_HOSTNAME}}\\\"\",\r\n \"set sv_licenseKey\": \"set sv_licenseKey {{server.build.env.FIVEM_LICENSE}}\",\r\n \"set steam_webApiKey\": \"set steam_webApiKey {{server.build.env.STEAM_WEBAPIKEY}}\",\r\n \"sv_maxclients\": \"sv_maxclients {{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}",
|
"files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"endpoint_add_tcp\": \"endpoint_add_tcp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"endpoint_add_udp\": \"endpoint_add_udp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"sv_hostname\": \"sv_hostname \\\"{{server.build.env.SERVER_HOSTNAME}}\\\"\",\r\n \"set sv_licenseKey\": \"set sv_licenseKey {{server.build.env.FIVEM_LICENSE}}\",\r\n \"set steam_webApiKey\": \"set steam_webApiKey {{server.build.env.STEAM_WEBAPIKEY}}\",\r\n \"sv_maxclients\": \"sv_maxclients {{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}",
|
||||||
"startup": "{\r\n \"done\": \"succeeded. Welcome!\"\r\n}",
|
"startup": "{\r\n \"done\": \"succeeded. Welcome!\"\r\n}",
|
||||||
"logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}",
|
"logs": "{}",
|
||||||
"stop": "quit"
|
"stop": "quit"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"installation": {
|
"installation": {
|
||||||
"script": "#!\/bin\/ash\r\n# FiveM Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update -y\r\napt install -y tar xz-utils curl git file jq\r\n\r\nmkdir -p \/mnt\/server\/resources\r\n\r\ncd \/mnt\/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/\r\n\r\nRELEASE_PAGE=$(curl -sSL https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/)\r\nCHANGELOGS_PAGE=$(curl -sSL https:\/\/changelogs-live.fivem.net\/api\/changelog\/versions\/linux\/server)\r\n\r\nif [[ \"${FIVEM_VERSION}\" == \"latest\" ]] || [[ -z ${FIVEM_VERSION} ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.latest_download')\r\nelse\r\n VERSION_LINK=$(echo -e \"${RELEASE_PAGE}\" | grep -Eo '\".*\/*.tar.xz\"' | grep -Eo '\".*\"' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1' | grep ${CFX_VERSION})\r\n if [[ \"${VERSION_LINK}\" == \"\" ]]; then\r\n echo -e \"defaulting to latest as the version requested was invalid.\"\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.latest_download')\r\n else\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${VERSION_LINK})\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\necho -e \"Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho \"Extracting fivem files\"\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 ${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\nrm -rf ${DOWNLOAD_LINK##*\/} run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"Skipping downloading default server config file as one already exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/gta\/fivem\/server.cfg >>server.cfg\r\nfi\r\n\r\nmkdir -p logs\/\r\n\r\necho \"install complete\"",
|
"script": "#!\/bin\/bash\r\n# FiveM Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update -y\r\napt install -y tar xz-utils file jq\r\n\r\nmkdir -p \/mnt\/server\/resources\r\n\r\ncd \/mnt\/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/\r\n\r\nRELEASE_PAGE=$(curl -sSL https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/)\r\nCHANGELOGS_PAGE=$(curl -sSL https:\/\/changelogs-live.fivem.net\/api\/changelog\/versions\/linux\/server)\r\n\r\nif [[ \"${FIVEM_VERSION}\" == \"recommended\" ]] || [[ -z ${FIVEM_VERSION} ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\nelif [[ \"${FIVEM_VERSION}\" == \"latest\" ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.latest_download')\r\nelse\r\n VERSION_LINK=$(echo -e \"${RELEASE_PAGE}\" | grep -Eo '\".*\/*.tar.xz\"' | grep -Eo '\".*\/*.tar.xz\"' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1' | grep -i \"${FIVEM_VERSION}\" | grep -o =.* | tr -d '=')\r\n if [[ \"${VERSION_LINK}\" == \"\" ]]; then\r\n echo -e \"defaulting to recommedned as the version requested was invalid.\"\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\n else\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${VERSION_LINK})\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\necho -e \"Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho \"Extracting fivem files\"\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 ${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\nrm -rf ${DOWNLOAD_LINK##*\/} run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"Skipping downloading default server config file as one already exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/gta\/fivem\/server.cfg >>server.cfg\r\nfi\r\n\r\nmkdir -p logs\/\r\n\r\necho \"install complete\"",
|
||||||
"container": "debian:buster-slim",
|
"container": "ghcr.io\/parkervcp\/installers:debian",
|
||||||
"entrypoint": "bash"
|
"entrypoint": "bash"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -35,7 +35,8 @@
|
|||||||
"default_value": "",
|
"default_value": "",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string|max:33"
|
"rules": "required|string|max:33",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Max Players",
|
"name": "Max Players",
|
||||||
@@ -44,7 +45,8 @@
|
|||||||
"default_value": "48",
|
"default_value": "48",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": false,
|
"user_editable": false,
|
||||||
"rules": "required|integer|between:1,48"
|
"rules": "required|integer|between:1,48",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Server Hostname",
|
"name": "Server Hostname",
|
||||||
@@ -53,25 +55,28 @@
|
|||||||
"default_value": "My new FXServer!",
|
"default_value": "My new FXServer!",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string"
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "fivem version",
|
"name": "fivem version",
|
||||||
"description": "The fivem version that is to be installed. Invalid versions will default to latest.\r\n\r\nAn example is `1383-e5ea040353ce1b8bc86e37982bf5d888938e3096`\r\n\r\nYou can get the latest version from here - https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/",
|
"description": "The fivem version that is to be installed. Invalid versions will default to recommended.\r\n\r\nAn example is `6013-d8ae399d15680da569022f57ab7f2474d307c821`\r\n\r\nYou can get the latest version from here - https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/",
|
||||||
"env_variable": "FIVEM_VERSION",
|
"env_variable": "FIVEM_VERSION",
|
||||||
"default_value": "latest",
|
"default_value": "recommended",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string|max:50"
|
"rules": "required|string|max:50",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Download Link",
|
"name": "Download Link",
|
||||||
"description": "This is the link to download fivem from. This is only used in the install script.\r\n\r\nThe file you link to needs to be an fx.tar.zx file.\r\n\r\nExample:\r\nhttps:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/1626-8c06e8bc3ed7e6690c6c2d9e0b90e29df65b3ea6\/fx.tar.xz",
|
"description": "This is the link to download fivem from. This is only used in the install script.\r\n\r\nThe file you link to needs to be an fx.tar.zx file.\r\n\r\nExample:\r\nhttps:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/6013-d8ae399d15680da569022f57ab7f2474d307c821\/fx.tar.xz",
|
||||||
"env_variable": "DOWNLOAD_URL",
|
"env_variable": "DOWNLOAD_URL",
|
||||||
"default_value": "",
|
"default_value": "",
|
||||||
"user_viewable": false,
|
"user_viewable": false,
|
||||||
"user_editable": false,
|
"user_editable": false,
|
||||||
"rules": "string|nullable"
|
"rules": "string|nullable",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Steam Web Api Key",
|
"name": "Steam Web Api Key",
|
||||||
@@ -80,7 +85,8 @@
|
|||||||
"default_value": "none",
|
"default_value": "none",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string"
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "txAdmin Port",
|
"name": "txAdmin Port",
|
||||||
@@ -89,7 +95,8 @@
|
|||||||
"default_value": "40120",
|
"default_value": "40120",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": false,
|
"user_editable": false,
|
||||||
"rules": "required|string|max:20"
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Enable txadmin",
|
"name": "Enable txadmin",
|
||||||
@@ -98,7 +105,8 @@
|
|||||||
"default_value": "0",
|
"default_value": "0",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|boolean"
|
"rules": "required|boolean",
|
||||||
|
"field_type": "text"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
### AUTOMATICALY SET BY PTERODACTYL ###
|
### AUTOMATICALLY SET BY PTERODACTYL ###
|
||||||
# Only change the IP if you're using a server with multiple network interfaces, otherwise change the port only.
|
# Only change the IP if you're using a server with multiple network interfaces, otherwise change the port only.
|
||||||
endpoint_add_tcp "0.0.0.0:30120"
|
endpoint_add_tcp "0.0.0.0:30120"
|
||||||
endpoint_add_udp "0.0.0.0:30120"
|
endpoint_add_udp "0.0.0.0:30120"
|
||||||
|
|||||||
@@ -1,29 +1,29 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1",
|
"version": "PTDL_v2",
|
||||||
"update_url": null
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2022-05-25T15:27:15+02:00",
|
"exported_at": "2023-11-13T18:18:13+01:00",
|
||||||
"name": "Multi Theft Auto",
|
"name": "Multi Theft Auto",
|
||||||
"author": "info@six-gaming.com",
|
"author": "info@six-gaming.com",
|
||||||
"description": "What more could you want? Multi Theft Auto provides the best online Grand Theft Auto experience there is. Read on to find out more.",
|
"description": "What more could you want? Multi Theft Auto provides the best online Grand Theft Auto experience there is. Read on to find out more.",
|
||||||
"features": null,
|
"features": null,
|
||||||
"images": [
|
"docker_images": {
|
||||||
"ghcr.io\/parkervcp\/yolks:ubuntu"
|
"ghcr.io\/parkervcp\/games:mta": "ghcr.io\/parkervcp\/games:mta"
|
||||||
],
|
},
|
||||||
"file_denylist": [],
|
"file_denylist": [],
|
||||||
"startup": ".\/mta-server64 --port {{SERVER_PORT}} --httpport {{SERVER_WEBPORT}} -n",
|
"startup": ".\/mta-server64 --port {{SERVER_PORT}} --httpport {{SERVER_WEBPORT}} -n",
|
||||||
"config": {
|
"config": {
|
||||||
"files": "{}",
|
"files": "{}",
|
||||||
"startup": "{\r\n \"done\": \"Server started and is ready to accept connections\"\r\n}",
|
"startup": "{\r\n \"done\": \"Server started and is ready to accept connections\"\r\n}",
|
||||||
"logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}",
|
"logs": "{}",
|
||||||
"stop": "shutdown"
|
"stop": "shutdown"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"installation": {
|
"installation": {
|
||||||
"script": "#!\/bin\/bash\r\napt -y update\r\napt -y --no-install-recommends install curl unzip lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -L -o multitheftauto_linux_x64.tar.gz https:\/\/linux.mtasa.com\/dl\/multitheftauto_linux_x64.tar.gz\r\ncurl -L -o mta-baseconfig.tar.gz https:\/\/linux.mtasa.com\/dl\/baseconfig.tar.gz\r\ncurl -L -o mtasa-resources-latest.zip http:\/\/mirror.mtasa.com\/mtasa\/resources\/mtasa-resources-latest.zip\r\n\r\nmkdir -p \/mnt\/server\r\ntar -xvf multitheftauto_linux_x64.tar.gz\r\ncp -rf multitheftauto_linux_x64\/* \/mnt\/server\r\n\r\nif [ ! -f \/mnt\/server\/x64\/libmysqlclient.so.16 ]; then\r\n curl -L http:\/\/nightly.mtasa.com\/files\/libmysqlclient.so.16 -o \/mnt\/server\/x64\/libmysqlclient.so.16\r\nfi\r\n\r\nmkdir -p \/mnt\/server\/mods\/deathmatch\/resources\r\nunzip -o -d \/mnt\/server\/mods\/deathmatch\/resources mtasa-resources-latest.zip\r\n\r\nmkdir -p \/mnt\/server-conf\r\ntar -xvf mta-baseconfig.tar.gz\r\ncp -rf baseconfig\/* \/mnt\/server\/mods\/deathmatch\r\n\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\necho \"done\"",
|
"script": "#!\/bin\/bash\r\n\r\ncd \/tmp\r\ncurl -L -o multitheftauto_linux_x64.tar.gz https:\/\/linux.mtasa.com\/dl\/multitheftauto_linux_x64.tar.gz\r\ncurl -L -o mta-baseconfig.tar.gz https:\/\/linux.mtasa.com\/dl\/baseconfig.tar.gz\r\ncurl -L -o mtasa-resources-latest.zip http:\/\/mirror.mtasa.com\/mtasa\/resources\/mtasa-resources-latest.zip\r\n\r\nmkdir -p \/mnt\/server\r\ntar -xvf multitheftauto_linux_x64.tar.gz\r\ncp -rf multitheftauto_linux_x64\/* \/mnt\/server\r\n\r\nif [ ! -f \/mnt\/server\/x64\/libmysqlclient.so.16 ]; then\r\n curl -L http:\/\/nightly.mtasa.com\/files\/libmysqlclient.so.16 -o \/mnt\/server\/x64\/libmysqlclient.so.16\r\nfi\r\n\r\nmkdir -p \/mnt\/server\/mods\/deathmatch\/resources\r\nunzip -o -d \/mnt\/server\/mods\/deathmatch\/resources mtasa-resources-latest.zip\r\n\r\ntar -xvf mta-baseconfig.tar.gz\r\ncp -rf baseconfig\/* \/mnt\/server\/mods\/deathmatch\r\n\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
|
||||||
"container": "ubuntu:18.04",
|
"container": "ghcr.io\/parkervcp\/installers:ubuntu",
|
||||||
"entrypoint": "bash"
|
"entrypoint": "bash"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -35,7 +35,8 @@
|
|||||||
"default_value": "22005",
|
"default_value": "22005",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": false,
|
"user_editable": false,
|
||||||
"rules": "required|numeric"
|
"rules": "required|numeric",
|
||||||
|
"field_type": "text"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# OpenMp
|
||||||
|
|
||||||
|
The [OpenMp](https://www.open.mp/) GTA San Andreas dedicated server
|
||||||
|
|
||||||
|
## Server Ports
|
||||||
|
|
||||||
|
|
||||||
|
| Port | default |
|
||||||
|
|---------|---------|
|
||||||
|
| Game | 25570 |
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
{
|
||||||
|
"announce": true,
|
||||||
|
"artwork": {
|
||||||
|
"cdn": "",
|
||||||
|
"enable": true,
|
||||||
|
"models_path": "models"
|
||||||
|
},
|
||||||
|
"chat_input_filter": true,
|
||||||
|
"enable_query": true,
|
||||||
|
"game": {
|
||||||
|
"allow_interior_weapons": true,
|
||||||
|
"chat_radius": 200.0,
|
||||||
|
"death_drop_amount": 0,
|
||||||
|
"gravity": 0.008,
|
||||||
|
"group_player_objects": false,
|
||||||
|
"lag_compensation_mode": 1,
|
||||||
|
"map": "",
|
||||||
|
"mode": "",
|
||||||
|
"nametag_draw_radius": 70.0,
|
||||||
|
"player_marker_draw_radius": 250.0,
|
||||||
|
"player_marker_mode": 1,
|
||||||
|
"time": 12,
|
||||||
|
"use_all_animations": false,
|
||||||
|
"use_chat_radius": false,
|
||||||
|
"use_entry_exit_markers": true,
|
||||||
|
"use_instagib": false,
|
||||||
|
"use_manual_engine_and_lights": false,
|
||||||
|
"use_nametag_los": true,
|
||||||
|
"use_nametags": true,
|
||||||
|
"use_player_marker_draw_radius": false,
|
||||||
|
"use_player_ped_anims": false,
|
||||||
|
"use_stunt_bonuses": true,
|
||||||
|
"use_vehicle_friendly_fire": false,
|
||||||
|
"use_zone_names": false,
|
||||||
|
"vehicle_respawn_time": 10000,
|
||||||
|
"weather": 10
|
||||||
|
},
|
||||||
|
"language": "",
|
||||||
|
"logging": {
|
||||||
|
"enable": true,
|
||||||
|
"log_chat": true,
|
||||||
|
"log_cookies": false,
|
||||||
|
"log_deaths": true,
|
||||||
|
"log_queries": false,
|
||||||
|
"log_sqlite": false,
|
||||||
|
"log_sqlite_queries": false,
|
||||||
|
"timestamp_format": "[%Y-%m-%dT%H:%M:%S%z]",
|
||||||
|
"use_prefix": true,
|
||||||
|
"use_timestamp": true
|
||||||
|
},
|
||||||
|
"max_bots": 0,
|
||||||
|
"max_players": 50,
|
||||||
|
"name": "open.mp server",
|
||||||
|
"network": {
|
||||||
|
"acks_limit": 3000,
|
||||||
|
"aiming_sync_rate": 30,
|
||||||
|
"allow_037_clients": true,
|
||||||
|
"bind": "",
|
||||||
|
"cookie_reseed_time": 300000,
|
||||||
|
"in_vehicle_sync_rate": 30,
|
||||||
|
"limits_ban_time": 60000,
|
||||||
|
"message_hole_limit": 3000,
|
||||||
|
"messages_limit": 500,
|
||||||
|
"minimum_connection_time": 0,
|
||||||
|
"mtu": 576,
|
||||||
|
"multiplier": 10,
|
||||||
|
"on_foot_sync_rate": 30,
|
||||||
|
"player_marker_sync_rate": 2500,
|
||||||
|
"player_timeout": 10000,
|
||||||
|
"port": 7777,
|
||||||
|
"public_addr": "",
|
||||||
|
"stream_radius": 200.0,
|
||||||
|
"stream_rate": 1000,
|
||||||
|
"time_sync_rate": 30000,
|
||||||
|
"use_lan_mode": false
|
||||||
|
},
|
||||||
|
"password": "",
|
||||||
|
"pawn": {
|
||||||
|
"legacy_plugins": [],
|
||||||
|
"main_scripts": [
|
||||||
|
"test 1"
|
||||||
|
],
|
||||||
|
"side_scripts": []
|
||||||
|
},
|
||||||
|
"rcon": {
|
||||||
|
"allow_teleport": false,
|
||||||
|
"enable": false,
|
||||||
|
"password": "changeme"
|
||||||
|
},
|
||||||
|
"sleep": 5.0,
|
||||||
|
"use_dyn_ticks": true,
|
||||||
|
"website": "open.mp"
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2023-07-01T11:37:31+02:00",
|
||||||
|
"name": "OpenMP",
|
||||||
|
"author": "vedrancappone@gmail.com",
|
||||||
|
"description": "A multiplayer mod for Grand Theft Auto: San Andreas that is fully backwards compatible with San Andreas Multiplayer.",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"Samp": "ghcr.io\/parkervcp\/games:samp"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": ".\/omp-server",
|
||||||
|
"config": {
|
||||||
|
"files": "{\r\n \"config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"network.port\": \"{{server.build.default.port}}\",\r\n \"rcon.password\": \"{{server.build.env.RCON_PASSWORD}}\"\r\n }\r\n }\r\n}",
|
||||||
|
"startup": "{\r\n \"done\": \"started on port\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "exit"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!\/bin\/bash\r\n\r\napt -y install curl git jq tar\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/openmultiplayer\/open.mp\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/openmultiplayer\/open.mp\/releases\")\r\nMATCH=open.mp-linux-x86-dynssl\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -linux-x86 | head -1)\r\n fi\r\nfi\r\n\r\necho \"running: curl -sSL -o openmp.tar.gz ${DOWNLOAD_URL}\"\r\ncurl -sSL -o openmp.tar.gz ${DOWNLOAD_URL}\r\n\r\nmkdir -p \/mnt\/server\r\ntar -xzvf openmp.tar.gz --strip-components=1 -C \/mnt\/server\/\r\n\r\ncd \/mnt\/server || exit\r\n\r\necho \"creating default config\"\r\n\r\nif [ -e config.json ]; then\r\n echo \"server config file exists\"\r\nelse\r\n echo \"Downloading default OpenMp config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/gta\/openmp\/config.json >> config.json\r\nfi\r\n\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
|
||||||
|
"container": "ghcr.io\/parkervcp\/installers:debian",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "RCON Password",
|
||||||
|
"description": "The password for RCON",
|
||||||
|
"env_variable": "RCON_PASSWORD",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:32",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Version",
|
||||||
|
"description": "The version you want to install",
|
||||||
|
"env_variable": "VERSION",
|
||||||
|
"default_value": "latest",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# ragecoop.online
|
||||||
|
|
||||||
|
The [ragecoop](https://ragecoop.online/) Drive around the interstate with your buddy, enjoy GTAs environment, make own missions and events or just chill in Grove Street! 🌐
|
||||||
|
|
||||||
|
## Server Ports
|
||||||
|
|
||||||
|
ragecoop requires one port for both UDP/TCP
|
||||||
|
|
||||||
|
| Port | default |
|
||||||
|
|---------|----------|
|
||||||
|
| Game | 4499 |
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2022-09-23T20:11:15+02:00",
|
||||||
|
"name": "RageCOOP",
|
||||||
|
"author": "josdekurk@gmail.com",
|
||||||
|
"description": "Drive around the interstate with your buddy, enjoy GTAs environment, make own missions and events or just chill in Grove Street! \ud83c\udf10",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": ".\/RageCoop.Server",
|
||||||
|
"config": {
|
||||||
|
"files": "{\r\n \"Settings.xml\": {\r\n \"parser\": \"xml\",\r\n \"find\": {\r\n \"Settings.Port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}",
|
||||||
|
"startup": "{\r\n \"done\": \"Listening for clients\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "^C"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!\/bin\/bash\r\n\r\napt update\r\napt -y install curl wget git zip unzip jq\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/RAGECOOP\/RAGECOOP-V\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/RAGECOOP\/RAGECOOP-V\/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 RageCoop.Server-linux-x64.zip)\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 RageCoop.Server-linux-x64.zip)\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 | grep -i RageCoop.Server-linux-x64.zip)\r\n fi\r\nfi\r\n\r\necho ${DOWNLOAD_URL}\r\nwget ${DOWNLOAD_URL} -O RageCoop.Server-linux.zip\r\nRageCoop.Server-linux.zip\r\n\r\nunzip RageCoop.Server-linux.zip\r\n\r\nrm RageCoop.Server-linux.zip\r\n\r\nchmod +x RageCoop.Server\r\n\r\ncat <<EOF > Settings.xml\r\n<Settings xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xmlns:xsd=\"http:\/\/www.w3.org\/2001\/XMLSchema\">\r\n\t<Port>4499<\/Port>\r\n\t<MaxPlayers>32<\/MaxPlayers>\r\n\t<MaxLatency>500<\/MaxLatency>\r\n\t<Name>RAGECOOP server<\/Name>\r\n\t<Website>https:\/\/ragecoop.online\/<\/Website>\r\n\t<Description>RAGECOOP server<\/Description>\r\n\t<GameMode>FreeRoam<\/GameMode>\r\n\t<Language>English<\/Language>\r\n\t<WelcomeMessage>Welcome on this server :)<\/WelcomeMessage>\r\n\t<AnnounceSelf>false<\/AnnounceSelf>\r\n\t<MasterServer>https:\/\/masterserver.ragecoop.online\/<\/MasterServer>\r\n\t<LogLevel>0<\/LogLevel>\r\n\t<NpcStreamingDistance>500<\/NpcStreamingDistance>\r\n\t<PlayerStreamingDistance>-1<\/PlayerStreamingDistance>\r\n\t<WeatherTimeSync>true<\/WeatherTimeSync>\r\n\t<AllowedUsernameChars>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-_<\/AllowedUsernameChars>\r\n\t<UseP2P>false<\/UseP2P>\r\n\t<UseZeroTier>false<\/UseZeroTier>\r\n\t<UseVoice>false<\/UseVoice>\r\n\t<ZeroTierNetworkID>8056c2e21c000001<\/ZeroTierNetworkID>\r\n\t<AutoUpdate>false<\/AutoUpdate>\r\n\t<KickGodMode>false<\/KickGodMode>\r\n\t<KickSpamming>true<\/KickSpamming>\r\n<\/Settings>\r\nEOF\r\n\r\necho \"done\"",
|
||||||
|
"container": "debian:bullseye-slim",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Version",
|
||||||
|
"description": "The version you want of RAGECOOP-V\r\n\r\nExample: latest, nightly , 1.5.3",
|
||||||
|
"env_variable": "VERSION",
|
||||||
|
"default_value": "latest",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:20",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
{
|
{
|
||||||
"announce": true,
|
"announce": false,
|
||||||
"bind": "0.0.0.0",
|
"bind": "0.0.0.0",
|
||||||
|
"csharp": "disabled",
|
||||||
"gamemode": "freeroam",
|
"gamemode": "freeroam",
|
||||||
|
"maxplayers": 50,
|
||||||
"name": "RAGE:MP Unofficial server",
|
"name": "RAGE:MP Unofficial server",
|
||||||
"maxplayers": 100,
|
"port": 25565,
|
||||||
"port": 26011,
|
"stream-distance": 500
|
||||||
"streamdistance": 500
|
|
||||||
}
|
}
|
||||||
@@ -1,29 +1,29 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1",
|
"version": "PTDL_v2",
|
||||||
"update_url": null
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2021-07-02T03:51:58+03:00",
|
"exported_at": "2022-12-11T17:31:26+01:00",
|
||||||
"name": "Rage.MP",
|
"name": "Rage.MP",
|
||||||
"author": "noreply.waypointhosting@gmail.com",
|
"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.",
|
"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.",
|
||||||
"features": null,
|
"features": null,
|
||||||
"images": [
|
"docker_images": {
|
||||||
"quay.io\/parkervcp\/pterodactyl-images:debian_dotnet"
|
"ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian"
|
||||||
],
|
},
|
||||||
"file_denylist": [],
|
"file_denylist": [],
|
||||||
"startup": ".\/ragemp-server",
|
"startup": ".\/ragemp-server",
|
||||||
"config": {
|
"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}",
|
"files": "{\r\n \"conf.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"port\": \"{{server.build.default.port}}\",\r\n \"bind\":\"0.0.0.0\",\r\n \"name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"maxplayers\": \"{{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}",
|
||||||
"startup": "{\r\n \"done\": \"The server is ready to accept 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}",
|
"logs": "{}",
|
||||||
"stop": "^X"
|
"stop": "^X"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"installation": {
|
"installation": {
|
||||||
"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\/game_eggs\/gta\/ragemp\/conf.json >> conf.json\r\nfi\r\n\r\necho \"install complete\"\r\n\r\nexit 0",
|
"script": "#!\/bin\/bash\r\n\r\nmkdir -p \/mnt\/server\/tmp\r\ncd \/mnt\/server\r\n\r\nrm -rf bin\/\r\nrm -rf dotnet\/\r\nrm ragemp-server\r\n\r\ncd \/mnt\/server\/tmp\r\necho \"Downloading rage.mp\"\r\ncurl -sSL -o linux_x64.tar.gz https:\/\/cdn.rage.mp\/updater\/prerelease\/server-files\/linux_x64.tar.gz\r\ntar -xzvf linux_x64.tar.gz\r\nrm linux_x64.tar.gz\r\ncd \/mnt\/server\/tmp\/ragemp-srv\/\r\nmv * \/mnt\/server\r\n\r\ncd \/mnt\/server\r\nchmod +x .\/ragemp-server\r\nrm -rf \/mnt\/server\/tmp\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\/game_eggs\/gta\/ragemp\/conf.json >> conf.json\r\nfi\r\n\r\necho \"install complete\"\r\n\r\nexit 0",
|
||||||
"container": "debian:stable-slim",
|
"container": "ghcr.io\/parkervcp\/installers:debian",
|
||||||
"entrypoint": "bash"
|
"entrypoint": "bash"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -35,7 +35,8 @@
|
|||||||
"default_value": "RAGE:MP Unofficial server",
|
"default_value": "RAGE:MP Unofficial server",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": true,
|
"user_editable": true,
|
||||||
"rules": "required|string|max:64"
|
"rules": "required|string|max:64",
|
||||||
|
"field_type": "text"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Max Players",
|
"name": "Max Players",
|
||||||
@@ -44,16 +45,8 @@
|
|||||||
"default_value": "50",
|
"default_value": "50",
|
||||||
"user_viewable": true,
|
"user_viewable": true,
|
||||||
"user_editable": false,
|
"user_editable": false,
|
||||||
"rules": "required|integer|between:1,10000"
|
"rules": "required|integer|between:1,100",
|
||||||
},
|
"field_type": "text"
|
||||||
{
|
|
||||||
"name": "Announce",
|
|
||||||
"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": true,
|
|
||||||
"user_editable": true,
|
|
||||||
"rules": "required|boolean"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
# SA:MP
|
# SA:MP
|
||||||
|
|
||||||
The [SA:MP](https://www.sa-mp.com/) GTA San Andreas dedicated server
|
The [SA:MP](https://www.sa-mp.mp/) GTA San Andreas dedicated server
|
||||||
|
|||||||
@@ -1,26 +1,52 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1"
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2020-10-28T13:03:46+00:00",
|
"exported_at": "2023-10-19T18:53:04+02:00",
|
||||||
"name": "SA-MP",
|
"name": "SA-MP",
|
||||||
"author": "bl4ckspr4y@protonmail.com",
|
"author": "bl4ckspr4y@protonmail.com",
|
||||||
"description": "SA-MP is a free Massively Multiplayer Online game mod for the PC version of Rockstar Games Grand Theft Auto: San Andreas (tm).",
|
"description": "SA-MP is a free Massively Multiplayer Online game mod for the PC version of Rockstar Games Grand Theft Auto: San Andreas (tm).",
|
||||||
"image": "ghcr.io\/parkervcp\/games:samp",
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"Samp": "ghcr.io\/parkervcp\/games:samp"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
"startup": ".\/samp03svr",
|
"startup": ".\/samp03svr",
|
||||||
"config": {
|
"config": {
|
||||||
"files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"port\": \"port {{server.build.default.port}}\"\r\n }\r\n }\r\n}",
|
"files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"port\": \"port {{server.build.default.port}}\",\r\n \"rcon_password\": \"rcon_password {{server.build.env.RCON_PASS}}\"\r\n }\r\n }\r\n}",
|
||||||
"startup": "{\r\n \"done\": \"Started server on \",\r\n \"userInteraction\": []\r\n}",
|
"startup": "{\r\n \"done\": \"Started server on \"\r\n}",
|
||||||
"logs": "{\r\n \"custom\": true,\r\n \"location\": \"samp.log\"\r\n}",
|
"logs": "{}",
|
||||||
"stop": "^C"
|
"stop": "^^C"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"installation": {
|
"installation": {
|
||||||
"script": "#!\/bin\/bash\r\napt -y update\r\napt -y --no-install-recommends install curl unzip lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSL -o samp.tar.gz http:\/\/files.sa-mp.com\/samp037svr_R2-1.tar.gz\r\n\r\nmkdir -p \/mnt\/server\r\ntar -xzvf samp.tar.gz -C \/mnt\/server\/\r\ncp -r \/mnt\/server\/samp03\/* \/mnt\/server\r\nrm -rf \/mnt\/server\/samp03\/\r\ncd \/mnt\/server\r\nsed -i '3d' \/mnt\/server\/server.cfg\r\necho \"rcon_password changemeplease\" >> \/mnt\/server\/server.cfg\r\n\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server",
|
"script": "#!\/bin\/bash\r\n\r\n# Check if VERSION is set and starts with an uppercase \"R\"\r\nif [[ -n \"$VERSION\" && \"$VERSION\" == R* ]]; then\r\n VERSION=\"0.3.7\"\r\n echo \"Updated VERSION: $VERSION\"\r\nfi\r\n\r\ncd \/tmp || exit\r\necho \"running: curl -sSL -o samp.tar.gz https:\/\/sampcenter.com\/download\/server\/linux\/${VERSION}.tar.gz\"\r\ncurl -sSL -o samp.tar.gz https:\/\/sampcenter.com\/download\/server\/linux\/${VERSION}.tar.gz\r\n\r\nmkdir -p \/mnt\/server\r\ntar -xzvf samp.tar.gz --strip-components=1 -C \/mnt\/server\/\r\n\r\ncd \/mnt\/server || exit\r\n\r\nsed -i '3d' \/mnt\/server\/server.cfg\r\necho \"rcon_password ${RCON_PASS}\" >> \/mnt\/server\/server.cfg\r\n\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
|
||||||
"container": "ubuntu:16.04",
|
"container": "ghcr.io\/parkervcp\/installers:debian",
|
||||||
"entrypoint": "bash"
|
"entrypoint": "bash"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"variables": []
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Version",
|
||||||
|
"description": "Example: if the download url is https:\/\/sampcenter.com\/download\/server\/linux\/0.3.7.tar.gz then the variable should be: `0.3.7`",
|
||||||
|
"env_variable": "Version",
|
||||||
|
"default_value": "0.3.7",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:32",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Rcon password",
|
||||||
|
"description": "The password used for rcon",
|
||||||
|
"env_variable": "RCON_PASS",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:32",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
# HogWarp
|
||||||
|
|
||||||
|
HogWarp is a Work In Progress mod that adds Multiplayer functionality to Hogwarts Legacy, similar to FiveM for GTAV
|
||||||
|
|
||||||
|
This Mod requires a API key only obtainable through their Discord, see the Startup Variable **API KEY** for more info.
|
||||||
|
- Some features of the mod (Public servers / higher player counts) require a Patreon level. See their Patreon here: https://www.patreon.com/tiltedphoques
|
||||||
|
|
||||||
|
Plugins as of now **do not work** as Wine and Winetricks will break the DLL it runs off of. This will likely stay the case until a full Linux release
|
||||||
|
|
||||||
|
## Server Port
|
||||||
|
| Port | default |
|
||||||
|
|---------|---------|
|
||||||
|
| Game | 11778 |
|
||||||
|
|
||||||
|
## Hardware Requirements
|
||||||
|
| Storage | RAM | CPU |
|
||||||
|
|---------|---------|-----|
|
||||||
|
| 1.5GiB | 250MiB | 🥔 |
|
||||||
|
|
||||||
@@ -0,0 +1,122 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2023-11-14T12:12:21-05:00",
|
||||||
|
"name": "Hogwarp",
|
||||||
|
"author": "imkringle@proton.me",
|
||||||
|
"description": "A Pterodactyl egg for the Hogwarts Legacy mod Hogwarp - For more info see their Nexus: https:\/\/www.nexusmods.com\/hogwartslegacy\/mods\/1378",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": "wine HogWarpServer.exe",
|
||||||
|
"config": {
|
||||||
|
"files": "{\r\n \"config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"ApiKey\": \"{{env.API_KEY}}\",\r\n \"Name\": \"{{env.SERV_NAME}}\",\r\n \"Port\": \"{{server.build.default.port}}\",\r\n \"Description\": \"{{env.SERV_DESC}}\",\r\n \"MaxPlayer\": \"{{env.MAX_PLAYERS}}\",\r\n \"IconUrl\": \"{{env.SERV_ICON}}\"\r\n }\r\n }\r\n}",
|
||||||
|
"startup": "{\r\n \"done\": \" [HogWarpServer] \"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "^^C"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#Hogwarp Install\r\napt update -y\r\napt install -y curl 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\n# Validate link\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\n# Unpack Server zip\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\n\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${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\ncd \/mnt\/server\/\r\n\r\n#Create the Plugins folder\r\nmkdir plugins\/\r\n\r\n# Check for a config.json, if it is missing; create it\r\nTARGET_FILE=\"config.json\"\r\n\r\nif test -f \"$TARGET_FILE\"; then\r\n echo \"$TARGET_FILE exists. Skipping config install\"\r\nelse\r\n echo \"$TARGET_FILE does not exist. Installing!\"\r\n curl -sSL -o config.json https:\/\/pteropaste.com\/hy2d48dbhtdd\/\r\n echo \"$TARGET_FILE has been installed\"\r\nfi\r\n\r\n\r\n## Install End\r\necho \"-----------------------------------------\"\r\necho \"Hogwarp Is Installed!\"\r\necho \"-----------------------------------------\"",
|
||||||
|
"container": "ghcr.io\/parkervcp\/installers:debian",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Wine Tricks",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "WINETRICKS_RUN",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": false,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "nullable|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Hogwarp API Key",
|
||||||
|
"description": "A API required to boot - https:\/\/presence.hogwarp.com\/login\r\n- If not set on install it will fail. Set API Key then Reinstall Files",
|
||||||
|
"env_variable": "API_KEY",
|
||||||
|
"default_value": "CHANGEME",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Server Name",
|
||||||
|
"description": "A name that displays on the Hogwarp list",
|
||||||
|
"env_variable": "SERV_NAME",
|
||||||
|
"default_value": "Ptero Hogwarp Server",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "WineARCH",
|
||||||
|
"description": "Arch type for Wine",
|
||||||
|
"env_variable": "WINEARCH",
|
||||||
|
"default_value": "win64",
|
||||||
|
"user_viewable": false,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "required",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Max Players",
|
||||||
|
"description": "Max players for a server, this depends on your Patreon level for Hogwarp\r\nhttps:\/\/www.patreon.com\/tiltedphoques - ( 4, 8, 16, No Limit ) In that order.",
|
||||||
|
"env_variable": "MAX_PLAYERS",
|
||||||
|
"default_value": "4",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|integer",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Server Icon URL",
|
||||||
|
"description": "The icon that displays on Hogwarps multiplayer listing",
|
||||||
|
"env_variable": "SERV_ICON",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Server Description",
|
||||||
|
"description": "The description that shows on the Multiplayer list",
|
||||||
|
"env_variable": "SERV_DESC",
|
||||||
|
"default_value": "",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "nullable|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Download URL",
|
||||||
|
"description": "URL to pull the files from\r\n- Files can be found in their Discord (https:\/\/discord.com\/invite\/hogwarp). Default URL will pull from there as well\r\n- These files can be outdated! Be sure to check for an update in the event it has a version mismatch with the client.",
|
||||||
|
"env_variable": "DOWNLOAD_URL",
|
||||||
|
"default_value": "https:\/\/cdn.discordapp.com\/attachments\/1076580539751993444\/1118295980597575810\/Server.zip",
|
||||||
|
"user_viewable": false,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "required|string",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "WINEDEBUG",
|
||||||
|
"description": "",
|
||||||
|
"env_variable": "WINEDEBUG",
|
||||||
|
"default_value": "-all",
|
||||||
|
"user_viewable": false,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "nullable",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
# Kerbal Space Program
|
||||||
|
|
||||||
|
[Dark Multiplayer](https://d-mp.org/)
|
||||||
|
Dark Multiplayer is an up-to-date mod adding the long awaited multiplayer feature to Kerbal Space Program while including support for other mods!
|
||||||
|
|
||||||
|
## Server Ports
|
||||||
|
|
||||||
|
Ports required to run the server in a table format.
|
||||||
|
|
||||||
|
| Port | default |
|
||||||
|
|---------|---------|
|
||||||
|
| Game | 6702 |
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
{
|
||||||
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
|
"meta": {
|
||||||
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
|
},
|
||||||
|
"exported_at": "2023-09-22T19:54:35+02:00",
|
||||||
|
"name": "KSP DMP",
|
||||||
|
"author": "rufanyin29@gmail.com",
|
||||||
|
"description": "Dark Multiplayer mod server for Kerbal Space Program",
|
||||||
|
"features": null,
|
||||||
|
"docker_images": {
|
||||||
|
"Mono": "ghcr.io\/parkervcp\/yolks:mono_latest"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": "mono DMPServer.exe",
|
||||||
|
"config": {
|
||||||
|
"files": "{\r\n \"Config\/Settings.txt\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"port\": \"{{server.build.default.port}}\",\r\n \"modpackMode\": \"{{server.build.env.MODPACKMODE}}\",\r\n \"warpMode\": \"{{server.build.env.WARPMODE}}\",\r\n \"gameMode\": \"{{server.build.env.GAMEMODE}}\",\r\n \"gameDifficulty\": \"{{server.build.env.DIFFICULTY}}\",\r\n \"whitelisted\": \"{{server.build.env.WHITELIST}}\",\r\n \"serverName\": \"{{server.build.env.SERVERNAME}}\"\r\n }\r\n }\r\n}",
|
||||||
|
"startup": "{\r\n \"done\": \"Ready!\"\r\n}",
|
||||||
|
"logs": "{}",
|
||||||
|
"stop": "\/exit"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"installation": {
|
||||||
|
"script": "#!\/bin\/bash\r\n\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nV=$(curl -s https:\/\/d-mp.org\/downloads | grep \"DMP Server\" | awk -F 'href=\"' 'NR==2 {print $2}' | awk -F '\"' '{print $1}') # \/builds\/release\/v0.3.8.3\/DMPServer.zip\r\n\r\necho \"Download link: https:\/\/d-mp.org${V}\"\r\ncurl -sSL -o DMPServer.zip https:\/\/d-mp.org${V}\r\n\r\nunzip -o DMPServer.zip\r\nmv DMPServer\/* .\/\r\n\r\nrm -rf DMPServer\r\nrm DMPServer.zip\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
|
||||||
|
"container": "ghcr.io\/parkervcp\/installers:debian",
|
||||||
|
"entrypoint": "bash"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"variables": [
|
||||||
|
{
|
||||||
|
"name": "Mod Pack Mode",
|
||||||
|
"description": "Specify the modpack type.",
|
||||||
|
"env_variable": "MODPACKMODE",
|
||||||
|
"default_value": "NONE",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|in:NONE,CKAN,GAMEDATA",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Warp Mode",
|
||||||
|
"description": "Specify the warp type.",
|
||||||
|
"env_variable": "WARPMODE",
|
||||||
|
"default_value": "SUBSPACE",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|in:MCW_FORCE,MCW_VOTE,MCW_LOWEST,SUBSPACE_SIMPLE,SUBSPACE,NONE",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Game Mode",
|
||||||
|
"description": "Specify the game type.",
|
||||||
|
"env_variable": "GAMEMODE",
|
||||||
|
"default_value": "SANDBOX",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|in:SANDBOX,CAREER,SCIENCE",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Game Difficulty",
|
||||||
|
"description": "Specify the gameplay difficulty of the server.",
|
||||||
|
"env_variable": "DIFFICULTY",
|
||||||
|
"default_value": "NORMAL",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|in:EASY,NORMAL,MODERATE,HARD,CUSTOM",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Whitelisted",
|
||||||
|
"description": "Enable white-listing.",
|
||||||
|
"env_variable": "WHITELIST",
|
||||||
|
"default_value": "False",
|
||||||
|
"user_viewable": false,
|
||||||
|
"user_editable": false,
|
||||||
|
"rules": "required|string|in:True,False",
|
||||||
|
"field_type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Server Name",
|
||||||
|
"description": "Name of the server.",
|
||||||
|
"env_variable": "SERVERNAME",
|
||||||
|
"default_value": "DMP Server",
|
||||||
|
"user_viewable": true,
|
||||||
|
"user_editable": true,
|
||||||
|
"rules": "required|string|max:48",
|
||||||
|
"field_type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,14 +1,19 @@
|
|||||||
{
|
{
|
||||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": "PTDL_v1"
|
"version": "PTDL_v2",
|
||||||
|
"update_url": null
|
||||||
},
|
},
|
||||||
"exported_at": "2020-11-10T17:07:44-05:00",
|
"exported_at": "2022-10-26T17:21:51+02:00",
|
||||||
"name": "LeagueSandbox",
|
"name": "LeagueSandbox",
|
||||||
"author": "domi@imagine.team",
|
"author": "domi@imagine.team",
|
||||||
"description": "A simple egg to run LeagueSandbox server in pterodactyl",
|
"description": "A simple egg to run LeagueSandbox server in pterodactyl",
|
||||||
"image": "quay.io\/parkervcp\/pterodactyl-images:debian_dotnet",
|
"features": null,
|
||||||
"startup": ".\/GameServerConsole",
|
"docker_images": {
|
||||||
|
"ghcr.io\/parkervcp\/yolks:dotnet_6": "ghcr.io\/parkervcp\/yolks:dotnet_6"
|
||||||
|
},
|
||||||
|
"file_denylist": [],
|
||||||
|
"startup": ".\/GameServerConsole --port {{SERVER_PORT}}",
|
||||||
"config": {
|
"config": {
|
||||||
"files": "{}",
|
"files": "{}",
|
||||||
"startup": "{\r\n \"done\": \"Game is ready.\"\r\n}",
|
"startup": "{\r\n \"done\": \"Game is ready.\"\r\n}",
|
||||||
@@ -17,20 +22,10 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"installation": {
|
"installation": {
|
||||||
"script": "apk update && apk add git\r\ngit clone $GIT_URL\r\nrm .git -rf\r\ncd GameServer\r\ngit submodule init\r\ngit submodule update\r\ndotnet build .\r\ncp -r GameServerConsole\/bin\/Debug\/netcoreapp3.0\/* \/mnt\/server\/\r\ncp -r Content \/mnt\/server\/Content",
|
"script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y zip unzip jq curl wget git\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\ngit clone https:\/\/github.com\/LeagueSandbox\/GameServer.git\r\nrm .git -rf\r\n\r\ncd GameServer\/\r\n\r\ngit submodule init\r\ngit submodule update\r\n\r\ndotnet build .\r\ncp -r GameServerConsole\/bin\/Debug\/net6.0\/* \/mnt\/server\/\r\ncp -r Content \/mnt\/server\/Content\r\necho \"done\"",
|
||||||
"container": "mcr.microsoft.com\/dotnet\/sdk:5.0",
|
"container": "bitnami\/dotnet-sdk:6-debian-11",
|
||||||
"entrypoint": "bash"
|
"entrypoint": "bash"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"variables": [
|
"variables": []
|
||||||
{
|
|
||||||
"name": "Git Url",
|
|
||||||
"description": "This is where the install script will clone the server files from",
|
|
||||||
"env_variable": "GIT_URL",
|
|
||||||
"default_value": "https:\/\/github.com\/LeagueSandbox\/GameServer",
|
|
||||||
"user_viewable": true,
|
|
||||||
"user_editable": false,
|
|
||||||
"rules": "required|string|max:90|url"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# League Sandbox
|
# League Sandbox
|
||||||
|
|
||||||
## From their [Github](https://github.com/LeagueSandbox/leaguesandbox.github.io)
|
## From their [Github](https://github.com/LeagueSandbox/GameServer)
|
||||||
|
|
||||||
[](https://ci.appveyor.com/project/MythicManiac/gameserver/branch/indev)
|
[](https://ci.appveyor.com/project/MythicManiac/gameserver/branch/indev)
|
||||||
[](https://travis-ci.org/LeagueSandbox/GameServer)
|
[](https://travis-ci.org/LeagueSandbox/GameServer)
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# Los Angeles Crimes
|
||||||
|
This egg makes it easy for you to create a public server in the game [Los Angeles Crimes](https://play.google.com/store/apps/details?id=com.MA.LAC&hl=in&gl=US).
|
||||||
|
|
||||||
|
I made it because I was confused about how to create a server manually which requires using a vpn and so on... But here such a method is not needed. This egg uses a Linux Server that has been provided by the Game Developer.
|
||||||
|
|
||||||
|
## Game Description
|
||||||
|
Los Angeles Crimes lets you play, create, and discover a variety of immersive worlds created by a global community!
|
||||||
|
|
||||||
|
Features:
|
||||||
|
- Free roam, team death-match, zombie survival, car race & soccer
|
||||||
|
- Third-person & first-person view
|
||||||
|
- Active-ragdoll and realistic physics
|
||||||
|
- LAN support
|
||||||
|
- PS4 controller support (Bluetooth)
|
||||||
|
|
||||||
|
Website: https://lacrimesonline.com/
|
||||||
|
|
||||||
|
## Minimum Requirement
|
||||||
|
1024MB Ram and 1024MB Disk is enough to run the server. Better to add ram & disk as this is a public server and dozens of people can join.
|
||||||
|
|
||||||
|
## Server Port
|
||||||
|
|
||||||
|
> **The LAC server can only run on port 7777. So the server port in the pterodactyl panel that you will use must be 7777.**
|
||||||
|
|
||||||
|
| Port | Default |
|
||||||
|
|---|---|
|
||||||
|
| Public Server | 7777 |
|
||||||
|
|
||||||
|
## To Do
|
||||||
|
- [ ] Can change version.
|
||||||
|
|
||||||
|
# Contributors
|
||||||
|
- [JastinXyz](https://github.com/JastinXyz)
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user