mirror of
https://github.com/parkervcp/eggs.git
synced 2024-11-14 22:07:22 +08:00
69 lines
3.4 KiB
Markdown
69 lines
3.4 KiB
Markdown
# How to contribute
|
|
|
|
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.
|
|
We don't need 8 miles of the install script.
|
|
|
|
2. Keep it small.
|
|
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.
|
|
|
|
3. 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.
|
|
|
|
4. Don't be afraid to submit PR's to the egg repo.
|
|
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.
|
|
|
|
### 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
|
|
|
|
### Be aware of the pterodactyl install process
|
|
|
|
The Pterodactyl install process is fairly simple once you know it.
|
|
|
|
```md
|
|
1. Spin up install container
|
|
Creates a new container using an install image that's run as root.
|
|
Uses a volume mount on `/mnt/server` for the server files, which is the working directory during installation.
|
|
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 and destroy install container
|
|
|
|
3. Start a new container with the server files in /home/container
|
|
This is where the server is actually run. No root privileges.
|
|
Any dependencies installed during the install process are gone.
|
|
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
|
|
|
|
### Testing
|
|
|
|
Make sure your install process is rock solid as I will be testing eggs before they ever hit my repo.
|
|
|
|
I will make suggestions and changes at will.
|
|
This is to maintain a clean repo that others can pull and be fully aware of what is being done.
|
|
|
|
## Step 3
|
|
|
|
### 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 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.
|