-
Notifications
You must be signed in to change notification settings - Fork 55
Add Egg Docs #177
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Add Egg Docs #177
Conversation
Added detailed instructions on creating a custom egg for Pelican Panel, including configuration, features, and variable management.
Added imports for Admonition, Tabs, and TabItem components.
Updated the documentation for creating a custom egg.
Added a comprehensive tutorial on creating a custom Docker image, including Dockerfile structure, dependency installation, and entrypoint script details.
✅ Deploy Preview for pelica ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
📝 WalkthroughWalkthroughAdds two new documentation pages for creating custom Eggs and Yolks, inserts an "Eggs" category into the docs sidebar, and enables Docker syntax highlighting by adding Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🧹 Nitpick comments (2)
docs/eggs/creating-a-custom-docker-image.mdx (1)
15-18: Minor wording & grammar polish for clarityA few small language tweaks would make this read more cleanly:
Line 15: use “set up” (verb) instead of “setup” (noun).
Line 17: you can trim the wording a bit and avoid “in order to”.
Line 81: avoid “In order to…” and tighten the sentence.
Line 104: clarify that
STARTUPis an environment variable.Suggested patch:
-The most important part of this process is to create the [`Dockerfile`](https://docs.docker.com/engine/reference/builder/) that will be used by Wings. Due to heavy restrictions on server containers, you must setup this file in a specific manner. +The most important part of this process is to create the [`Dockerfile`](https://docs.docker.com/engine/reference/builder/) that will be used by Wings. Due to heavy restrictions on server containers, you must set up this file in a specific manner. @@ -We try to make use of [Alpine Linux](https://alpinelinux.org) as much as possible for our images in order to keep their size down. +We try to use [Alpine Linux](https://alpinelinux.org) for our images to keep their size down. @@ -In order to complete this `Dockerfile`, we will need an `entrypoint.sh` file which tells Docker how to run this specific server type. +To complete this `Dockerfile`, we need an `entrypoint.sh` file that tells Docker how to run this specific server type. @@ -The most significant part of this file is the `MODIFIED_STARTUP` environment variable. What we are doing in this case is parsing the environment `STARTUP` that is passed into the container by Wings. +The most significant part of this file is the `MODIFIED_STARTUP` environment variable. What we are doing in this case is parsing the environment variable `STARTUP` that is passed into the container by Wings.Also applies to: 17-17, 81-82, 104-105
docs/eggs/creating-a-custom-egg.mdx (1)
159-160: Optional hyphenation/style tweaks in later sectionsVery minor style fixes you can apply if you want to polish further:
- Line 159: “regex based validation” → “regex‑based validation”.
- Lines 189–190: “Debian/Ubuntu based” and “Alpine Linux based” → “Debian/Ubuntu‑based” and “Alpine Linux‑based”.
Example patch:
-You can also use regex based validation by using the `regex:` rule flag. +You can also use regex-based validation by using the `regex:` rule flag. @@ - - `bash` - Use for Debian/Ubuntu based install images - - `ash` - Use for Alpine Linux based install images + - `bash` - Use for Debian/Ubuntu-based install images + - `ash` - Use for Alpine Linux-based install imagesThe rest of the doc (config file parsing examples, start config, variables, and install scripts) is detailed and aligns well with how Wings processes eggs.
Also applies to: 189-190
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
docs/eggs/creating-a-custom-docker-image.mdx(1 hunks)docs/eggs/creating-a-custom-egg.mdx(1 hunks)sidebars.ts(1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/eggs/creating-a-custom-egg.mdx
[grammar] ~24-~24: Ensure spelling is correct
Context: ... the Egg. ### Description This is the discription of your egg and what is needed to run y...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~27-~27: Ensure spelling is correct
Context: ...p Commands Here you can assign multiple Starup commands to run your server Example Be...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~36-~36: Ensure spelling is correct
Context: ...tures (Egg Features) Egg feature can do diffrent things when specifyed. Example Below | ...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~40-~40: Ensure spelling is correct
Context: ... | | java_version | Specifys the java version | | ...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~44-~44: Ensure spelling is correct
Context: ...ether as the same egg type. This is the secsessor to nests. ### Update URL This can be ...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~47-~47: Consider using “who” when you are referring to people instead of objects.
Context: ...URL This can be specifyed so that users that use your egg can Update the egg without...
(THAT_WHO)
[grammar] ~50-~50: Use a hyphen to join words.
Context: ...lways a docker image. They can be custom made and you can find how to make them f...
(QB_NEW_EN_HYPHEN)
[style] ~64-~64: Try moving the adverb to make the sentence clearer.
Context: ...ame implies, this should be the command used to safely stop the server. For some games, this is stop or `end...
(SPLIT_INFINITIVE)
[style] ~76-~76: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...scriptor. Wings will process this block prior to booting the server to ensure all of the...
(EN_WORDINESS_PREMIUM_PRIOR_TO)
[style] ~76-~76: Consider removing “of” to be more concise
Context: ...k prior to booting the server to ensure all of the required settings are defined and set c...
(ALL_OF_THE)
[style] ~157-~157: Consider an alternative for the often overused word ‘important’.
Context: ...file to perform actions, thus it is not important for the user to see. Finally, you will...
(NOT_IMPORTANT)
[style] ~159-~159: Consider removing “of” to be more concise
Context: ...10 characters in length. You can find all of the available validation rules on the Larav...
(ALL_OF_THE)
[grammar] ~159-~159: Use a hyphen to join words.
Context: ... Laravel website. You can also use regex based validation by using the regex: r...
(QB_NEW_EN_HYPHEN)
[grammar] ~189-~189: Use a hyphen to join words.
Context: ...ript: - bash - Use for Debian/Ubuntu based install images - ash - Use for...
(QB_NEW_EN_HYPHEN)
[grammar] ~190-~190: Use a hyphen to join words.
Context: ... images - ash - Use for Alpine Linux based install images ### Example Instal...
(QB_NEW_EN_HYPHEN)
docs/eggs/creating-a-custom-docker-image.mdx
[style] ~17-~17: Consider a more concise word here.
Context: ...org) as much as possible for our images in order to keep their size down. ```dockerfile # ...
(IN_ORDER_TO_PREMIUM)
[style] ~80-~80: Consider a more concise word here.
Context: ...rypoint.sh"] ``` ## Entrypoint Script In order to complete this Dockerfile, we will nee...
(IN_ORDER_TO_PREMIUM)
🔇 Additional comments (2)
docs/eggs/creating-a-custom-docker-image.mdx (1)
5-141: Overall doc reads well and matches expected Wings/yolk patternsThe structure and examples (Alpine base,
/home/container,containeruser,entrypoint.sh, andMODIFIED_STARTUPhandling) align with how Wings images are typically built and should be familiar to users coming from Pterodactyl. I don’t see technical inaccuracies in the described flow.sidebars.ts (1)
47-54: Sidebar wiring for new egg docs looks correctThe new “Creating Eggs” category is well placed between “Wings” and “Guides”, and the items:
eggs/creating-a-custom-eggeggs/creating-a-custom-docker-imagematch the added doc paths, so Docusaurus should resolve them correctly.
Corrected grammatical errors and improved clarity in the documentation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (5)
docs/eggs/creating-a-custom-egg.mdx (5)
21-21: Typo: "orignal" should be "original" (Previous review flagged; still unresolved)This spelling error remains from the prior review cycle.
-This is the orignal Creator of the egg. +This is the original creator of the egg.
47-47: Fix spelling and pronoun: "specifyed" and "users that use" (Previous review flagged; still unresolved)This section has two unresolved issues from the prior review:
- "specifyed" should be "specified"
- "users that use" should be "users who" (referring to people)
Additionally, the sentence is wordy and could be simplified.
-This can be specifyed so that users that use your egg can update the egg without having to look around for where the egg is hosted. +This can be specified so users who use your egg can update it without searching for where it is hosted.
40-40: Capitalize "Java" for consistency with technical namingThe Java version reference should use the standard capitalization of the language name.
-| java_version | Specifies the java version | +| java_version | Specifies the Java version |
41-41: Fix grammar: "Is setting" should be "A setting"The sentence structure needs correction to be grammatically sound.
-| pid_limit | Is setting that restricts the maximum number of processes that can run within a container or on a system | +| pid_limit | Setting that restricts the maximum number of processes that can run within a container or on a system |
36-36: Use plural form: "Egg features" not "Egg feature"The opening sentence should use the plural form to match the section title.
-Egg feature can do different things when specified. Example below: +Egg features can do different things when specified. Example below:
🧹 Nitpick comments (6)
docs/eggs/creating-a-custom-egg.mdx (6)
44-44: Eliminate redundant phrasing: "system is a system"Tighten the sentence to avoid repeating "system."
-The tag system is a system that you can use to group eggs together as the same egg type. This is the successor to nests. +Tags let you group eggs together by type. This is the successor to nests.
64-64: Consider alternative phrasing for adverb placementThe phrasing "command used to safely stop" could be more natural as "command to safely stop" or restructured for clarity.
-Next, you'll encounter `Stop Command` and, as the name implies, this should be the command used to safely stop the server. For some games, this is `stop` or `end`. Certain programs and games don't have a specified stop command, so you can enter `^C` to have Wings execute a `SIGINT` to end the process. +Next, you'll encounter `Stop Command`, which is the command to safely stop the server. For some games, this is `stop` or `end`. Certain programs and games don't have a specified stop command, so you can enter `^C` to have Wings execute a `SIGINT` to end the process.
76-76: Simplify wordiness: "prior to" and "all of the"Use more concise language: "before" instead of "prior to" and "all the" instead of "all of the."
-The next block is one of the most complex blocks, the `Configuration Files` descriptor. Wings will process this block prior to booting the server to ensure all of the required settings are defined and set correctly. +The next block is one of the most complex blocks, the `Configuration Files` descriptor. Wings will process this block before booting the server to ensure all the required settings are defined and set correctly.
157-157: Rephrase: Consider alternative to "not important"The phrase "not important" is somewhat informal for documentation. Consider more direct language.
-You should use caution here, even if you assign neither of the permissions it does not mean that the value will be hidden. Crafty users will still be able to get the environment on their server. In most cases this is simply hiding it from the user, and then used within the Dockerfile to perform actions, thus it is not important for the user to see. +You should use caution here, even if you assign neither of the permissions, the value may still be accessible to determined users. In most cases, this is simply hiding it from the user interface while using the environment variable in the Dockerfile to perform actions.
159-159: Simplify wordiness and hyphenate compound adjectiveUse "all the" instead of "all of the" and hyphenate "regex-based."
-Finally, you will need to define some input rules to validate the value against. In this example, we use `required|string|between:1,10`, which means the field is `required`, must be a `string`, and must be between `1` and `10` characters in length. You can find all of the available validation rules on the Laravel website. You can also use regex based validation by using the `regex:` rule flag. For example, `required|regex:/^([\w\d._-]+)(\.jar)$/` will require the field, and will match the regex as any letters or numbers (`\w\d`) including underscore (`_`), periods (`.`), and dashes (`-`) ending in `.jar`. +Finally, you will need to define some input rules to validate the value against. In this example, we use `required|string|between:1,10`, which means the field is `required`, must be a `string`, and must be between `1` and `10` characters in length. You can find all the available validation rules on the Laravel website. You can also use regex-based validation by using the `regex:` rule flag. For example, `required|regex:/^([\w\d._-]+)(\.jar)$/` will require the field, and will match the regex as any letters or numbers (`\w\d`) including underscore (`_`), periods (`.`), and dashes (`-`) ending in `.jar`.
189-190: Hyphenate compound adjectives: "Debian-based" and "Alpine-based"Use hyphens to join compound adjectives modifying "install images."
-- `bash` - Use for Debian/Ubuntu based install images -- `ash` - Use for Alpine Linux based install images +- `bash` - Use for Debian/Ubuntu-based install images +- `ash` - Use for Alpine Linux-based install images
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
docs/eggs/creating-a-custom-egg.mdx(1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/eggs/creating-a-custom-egg.mdx
[style] ~47-~47: Consider using “who” when you are referring to people instead of objects.
Context: ...URL This can be specifyed so that users that use your egg can update the egg without...
(THAT_WHO)
[grammar] ~50-~50: Use a hyphen to join words.
Context: ...has a Docker image. Images can be custom made, and you can learn how to create th...
(QB_NEW_EN_HYPHEN)
[style] ~64-~64: Try moving the adverb to make the sentence clearer.
Context: ...ame implies, this should be the command used to safely stop the server. For some games, this is stop or `end...
(SPLIT_INFINITIVE)
[style] ~76-~76: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...scriptor. Wings will process this block prior to booting the server to ensure all of the...
(EN_WORDINESS_PREMIUM_PRIOR_TO)
[style] ~76-~76: Consider removing “of” to be more concise
Context: ...k prior to booting the server to ensure all of the required settings are defined and set c...
(ALL_OF_THE)
[style] ~157-~157: Consider an alternative for the often overused word ‘important’.
Context: ...file to perform actions, thus it is not important for the user to see. Finally, you will...
(NOT_IMPORTANT)
[style] ~159-~159: Consider removing “of” to be more concise
Context: ...10 characters in length. You can find all of the available validation rules on the Larav...
(ALL_OF_THE)
[grammar] ~159-~159: Use a hyphen to join words.
Context: ... Laravel website. You can also use regex based validation by using the regex: r...
(QB_NEW_EN_HYPHEN)
[grammar] ~189-~189: Use a hyphen to join words.
Context: ...ript: - bash - Use for Debian/Ubuntu based install images - ash - Use for...
(QB_NEW_EN_HYPHEN)
[grammar] ~190-~190: Use a hyphen to join words.
Context: ... images - ash - Use for Alpine Linux based install images ### Example Instal...
(QB_NEW_EN_HYPHEN)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (2)
docs/eggs/creating-a-custom-yolk.mdx (2)
14-14: Replace "in order to" with "to" for conciseness.The phrase "in order to keep their size down" can be simplified to "to keep their size down" for improved readability.
Apply this change:
-We try to make use of [Alpine Linux](https://alpinelinux.org) as much as possible for our images in order to keep their size down. +We try to make use of [Alpine Linux](https://alpinelinux.org) as much as possible for our images to keep their size down.
77-77: Replace "in order to" with "to" for conciseness.The phrase "in order to complete this
Dockerfile" can be simplified to "to complete thisDockerfile" for improved readability.Apply this change:
-In order to complete this `Dockerfile`, we will need an `entrypoint.sh` file which tells Docker how to run this specific server type. +To complete this `Dockerfile`, we will need an `entrypoint.sh` file which tells Docker how to run this specific server type.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
docs/eggs/creating-a-custom-yolk.mdx(1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/eggs/creating-a-custom-yolk.mdx
[style] ~14-~14: Consider a more concise word here.
Context: ...org) as much as possible for our images in order to keep their size down. ```dockerfile # ...
(IN_ORDER_TO_PREMIUM)
[style] ~77-~77: Consider a more concise word here.
Context: ...rypoint.sh"] ``` ## Entrypoint Script In order to complete this Dockerfile, we will nee...
(IN_ORDER_TO_PREMIUM)
🔇 Additional comments (3)
docs/eggs/creating-a-custom-yolk.mdx (3)
16-37: Dockerfile structure and best practices look sound.The Dockerfile follows Docker best practices: using a minimal base image (Alpine), combining RUN commands to reduce layers, setting appropriate user permissions, and proper use of WORKDIR. The inline comments enhance clarity.
82-95: Entrypoint script is clear and well-documented.The entrypoint script correctly demonstrates:
- Directory initialization with
cd /home/container- Diagnostic output (
java -version)- Placeholder substitution using
sedto convert{{VARIABLE}}to$VARIABLEsyntax- Command execution with
${MODIFIED_STARTUP}This is a solid educational example.
99-130: Startup command modification logic is well-explained.The explanation of how the
MODIFIED_STARTUPvariable transforms placeholder syntax is clear and includes concrete before/after examples. The walkthrough of the sed replacement and eval command helps readers understand the mechanism.
Updated the section on Docker images to clarify terminology and guide references.
Removed the Table of Contents section from the tutorial.
|
@rmartinoscar changes have been made, i did change some of the wording as well, only because the panel shows Docker Images rather than yolks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (3)
docs/eggs/creating-a-custom-egg.mdx (3)
18-18: Fix spelling error."orignal" should be "original".
-This is the orignal Creator of the egg. +This is the original creator of the egg.
44-44: Fix typo and use correct pronoun."specifyed" should be "specified", and "users that use" should be "users who use" when referring to people.
-This can be specifyed so that users that use your egg can update the egg without having to look around for where the egg is hosted. +This can be specified so that users who use your egg can update the egg without having to look around for where the egg is hosted.
38-38: Fix grammatically incomplete sentence.The description for
pid_limitstarts with "Is setting" which is grammatically incomplete.-| pid_limit | Is setting that restricts the maximum number of processes that can run within a container or on a system | +| pid_limit | A setting that restricts the maximum number of processes that can run within a container or on a system |
🧹 Nitpick comments (1)
docs/eggs/creating-a-custom-yolk.mdx (1)
12-12: Optional: Simplify wording for conciseness.Consider replacing "in order to keep" with "to keep" for more concise writing.
-We try to make use of [Alpine Linux](https://alpinelinux.org) as much as possible for our images in order to keep their size down. +We try to make use of [Alpine Linux](https://alpinelinux.org) as much as possible for our images to keep their size down.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
docs/eggs/creating-a-custom-egg.mdx(1 hunks)docs/eggs/creating-a-custom-yolk.mdx(1 hunks)sidebars.ts(1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/eggs/creating-a-custom-egg.mdx
[style] ~44-~44: Consider using “who” when you are referring to people instead of objects.
Context: ...URL This can be specifyed so that users that use your egg can update the egg without...
(THAT_WHO)
[grammar] ~47-~47: Ensure spelling is correct
Context: ... has a Docker image or Yolk as they are refurred to. Images can be custom made, and you ...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~47-~47: Use a hyphen to join words.
Context: ...ey are refurred to. Images can be custom made, and you can learn how to create th...
(QB_NEW_EN_HYPHEN)
[style] ~61-~61: Try moving the adverb to make the sentence clearer.
Context: ...ame implies, this should be the command used to safely stop the server. For some games, this is stop or `end...
(SPLIT_INFINITIVE)
[style] ~73-~73: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...scriptor. Wings will process this block prior to booting the server to ensure all of the...
(EN_WORDINESS_PREMIUM_PRIOR_TO)
[style] ~73-~73: Consider removing “of” to be more concise
Context: ...k prior to booting the server to ensure all of the required settings are defined and set c...
(ALL_OF_THE)
[style] ~154-~154: Consider an alternative for the often overused word ‘important’.
Context: ...file to perform actions, thus it is not important for the user to see. Finally, you will...
(NOT_IMPORTANT)
[style] ~156-~156: Consider removing “of” to be more concise
Context: ...10 characters in length. You can find all of the available validation rules on the Larav...
(ALL_OF_THE)
[grammar] ~156-~156: Use a hyphen to join words.
Context: ... Laravel website. You can also use regex based validation by using the regex: r...
(QB_NEW_EN_HYPHEN)
[grammar] ~186-~186: Use a hyphen to join words.
Context: ...ript: - bash - Use for Debian/Ubuntu based install images - ash - Use for...
(QB_NEW_EN_HYPHEN)
[grammar] ~187-~187: Use a hyphen to join words.
Context: ... images - ash - Use for Alpine Linux based install images ### Example Instal...
(QB_NEW_EN_HYPHEN)
docs/eggs/creating-a-custom-yolk.mdx
[style] ~12-~12: Consider a more concise word here.
Context: ...org) as much as possible for our images in order to keep their size down. ```dockerfile # ...
(IN_ORDER_TO_PREMIUM)
[style] ~75-~75: Consider a more concise word here.
Context: ...rypoint.sh"] ``` ## Entrypoint Script In order to complete this Dockerfile, we will nee...
(IN_ORDER_TO_PREMIUM)
🔇 Additional comments (10)
sidebars.ts (1)
47-54: LGTM!The new "Eggs" category is properly structured and follows the existing sidebar patterns. The placement between Wings and Guides makes logical sense for documentation flow.
docs/eggs/creating-a-custom-yolk.mdx (4)
14-48: LGTM!The Dockerfile example follows best practices for Alpine-based images, including minimal layers, proper caching strategies, and clear dependency installation.
49-62: LGTM!The user creation requirements are clearly documented with appropriate warnings. The mandatory naming convention (
containeruser with/home/containerhome) is properly emphasized.
80-93: LGTM!The entrypoint script correctly demonstrates variable substitution logic. The sed command properly transforms the placeholder syntax from
{{VAR}}to${VAR}for bash evaluation.
97-136: LGTM!The step-by-step explanation of startup command variable substitution is clear and accurate. The before/after examples effectively demonstrate how placeholders like
{{SERVER_MEMORY}}are replaced with actual values, and the chmod note provides helpful practical guidance.docs/eggs/creating-a-custom-egg.mdx (5)
53-70: LGTM!The process management configuration is clearly explained. The stop command options (
stop,end,^Cfor SIGINT) are accurately documented, and the log storage configuration example is correct.
71-122: LGTM!The configuration files section provides comprehensive documentation with clear examples. The parser types are well-documented, and the advanced YAML example effectively demonstrates wildcard matching and multi-value replacement.
123-136: LGTM!The start configuration section clearly explains how Wings detects when a server has finished starting. The "done" marker concept is well-documented.
143-159: LGTM!The egg variables section provides excellent documentation on variable creation, usage patterns, permissions, and validation rules. The examples effectively demonstrate the different syntax options for accessing variables in various contexts.
175-268: LGTM!The install script section is comprehensive and well-structured. It covers all essential aspects including script configuration, container paths, common patterns (downloading, cloning, extracting, building), variables access, and proper exit code handling. The examples are practical and accurate.
|
closes issue #151 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
docs/eggs/creating-a-custom-yolk.mdx (2)
8-43: Previous critical issues successfully resolved! ✅Great work addressing the previous review feedback! The documentation now correctly and consistently uses:
- Alpine-based image (
eclipse-temurin:8-jdk-alpine)- Alpine package manager (
apk)- Alpine user creation command (
adduser --disabled-password)This resolves both the critical package manager mismatch and the inconsistency between the stated Alpine preference and the example.
Optional style suggestion
If you'd like to make the prose more concise, consider simplifying line 12:
-We try to make use of [Alpine Linux](https://alpinelinux.org) as much as possible for our images in order to keep their size down. +We try to make use of [Alpine Linux](https://alpinelinux.org) as much as possible for our images to keep their size down.This is purely stylistic and entirely optional.
74-93: Standard entrypoint pattern correctly implemented.The entrypoint script follows the established Pelican/Pterodactyl pattern for variable interpolation. The sed/eval approach for replacing
{{VARIABLE}}placeholders with environment variables is the documented method for these panels.Optional style suggestion
For consistency with the earlier suggestion, line 75 could be simplified:
-In order to complete this `Dockerfile`, we will need an `entrypoint.sh` file which tells Docker how to run this specific server type. +To complete this `Dockerfile`, we will need an `entrypoint.sh` file which tells Docker how to run this specific server type.Again, purely stylistic and optional.
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
docs/eggs/creating-a-custom-yolk.mdx(1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/eggs/creating-a-custom-yolk.mdx
[style] ~12-~12: Consider a more concise word here.
Context: ...org) as much as possible for our images in order to keep their size down. ```dockerfile # ...
(IN_ORDER_TO_PREMIUM)
[style] ~75-~75: Consider a more concise word here.
Context: ...rypoint.sh"] ``` ## Entrypoint Script In order to complete this Dockerfile, we will nee...
(IN_ORDER_TO_PREMIUM)
🔇 Additional comments (4)
docs/eggs/creating-a-custom-yolk.mdx (4)
1-6: Excellent introduction with appropriate warnings.The documentation clearly sets expectations by referencing the specific example image and prerequisites. This helps users understand the context before diving into the tutorial.
45-47: Good explanation of Docker best practices.The documentation correctly highlights important optimization techniques (--no-cache flag and single RUN block) that keep container images lean.
49-61: Critical requirements properly documented and emphasized.The warning box correctly highlights the mandatory requirements for Pelican containers (user named
containerwith home at/home/container). The Alpine-specificaddusersyntax is correct.
95-136: Clear explanation with practical examples.The step-by-step breakdown of how the
MODIFIED_STARTUPvariable replacement works is excellent, with concrete examples showing the transformation from template to final command. The note aboutchmod +xis a helpful practical tip.
|
I am going to have to pull this locally to look at it in depth. |
Added section on referencing egg variables in various contexts.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
docs/eggs/creating-a-custom-egg.mdx
🧰 Additional context used
🪛 LanguageTool
docs/eggs/creating-a-custom-egg.mdx
[grammar] ~38-~38: Use a hyphen to join words.
Context: ... | Sets the storage limit for any Steam based game normally controled by Steam |...
(QB_NEW_EN_HYPHEN)
[style] ~61-~61: Try moving the adverb to make the sentence clearer.
Context: ...ame implies, this should be the command used to safely stop the server. For some games, this is stop or `end...
(SPLIT_INFINITIVE)
[style] ~73-~73: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...scriptor. Wings will process this block prior to booting the server to ensure all of the...
(EN_WORDINESS_PREMIUM_PRIOR_TO)
[style] ~73-~73: Consider removing “of” to be more concise
Context: ...k prior to booting the server to ensure all of the required settings are defined and set c...
(ALL_OF_THE)
[style] ~188-~188: Consider an alternative for the often overused word ‘important’.
Context: ...file to perform actions, thus it is not important for the user to see. Finally, you will...
(NOT_IMPORTANT)
[style] ~190-~190: Consider removing “of” to be more concise
Context: ...10 characters in length. You can find all of the available validation rules in the [Lara...
(ALL_OF_THE)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: Redirect rules
- GitHub Check: Header rules
- GitHub Check: Pages changed
🔇 Additional comments (6)
docs/eggs/creating-a-custom-egg.mdx (6)
1-27: LGTM! Clear introduction and metadata section.The warning about not editing built-in eggs is well-placed, and the basic metadata fields (Name, Author, Description, Startup Commands) are clearly explained with appropriate examples.
46-51: LGTM! Docker Images section is clear and properly cross-referenced.The section correctly explains Yolks, provides links to pre-made options, and includes an important warning about Pelican-specific requirements.
53-134: LGTM! Process management configuration is comprehensive and accurate.The section thoroughly covers stop commands, log storage, configuration file parsing (with multiple parser types), and start configuration. The variable paths correctly use
server.allocations.default.portthroughout, and the examples demonstrate both basic and advanced usage patterns.
143-193: Excellent addition! Egg Variables section thoroughly addresses reviewer feedback.The new "How to Reference Egg Variables" subsection (lines 149-181) directly addresses QuintenQVD0's request for examples. It clearly demonstrates the three different contexts with proper syntax:
- Startup commands:
{{VARIABLE_NAME}}- Configuration file parsers:
{{env.VARIABLE_NAME}}- Install scripts:
{{VARIABLE_NAME}}The permissions and validation sections are also well-explained with practical examples.
194-208: LGTM! Default variables table is helpful and well-formatted.The table provides clear examples of the default variables available to all eggs, making it easy for users to understand what's accessible without creating custom variables.
209-298: LGTM! Install Script section is comprehensive and well-structured.This section provides excellent coverage of install scripts including:
- Clear explanation of script container and script entry options
- Practical examples with proper variable interpolation
- Important warning about
/mnt/serverpath differences- Common patterns for typical installation tasks
- Proper exit code handling
The examples follow best practices and will help users create reliable installation scripts.
Updated Dockerfile base image from 'eclipse-temurin:8-jdk-alpine' to 'eclipse-temurin:8-jdk-noble' and corrected spelling errors.
Updated descriptions for steam_disk_space and Stop Command. Changed references to environment variables for consistency.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
♻️ Duplicate comments (2)
docs/eggs/creating-a-custom-yolk.mdx (2)
20-25: CRITICAL: Package manager mismatch will break the build.The Dockerfile uses
FROM eclipse-temurin:8-jdk-noble(Ubuntu 24.04 base) but attempts to use Alpine'sapkpackage manager on line 24 and Alpine'saddusersyntax on line 25. This will fail at build time becauseapkdoesn't exist on Ubuntu/Debian systems.Past review comments indicated this was fixed, but the code still contains the Alpine commands.
🔎 Proposed fix for Ubuntu/Debian
-RUN apk add --no-cache --update curl ca-certificates openssl git tar bash sqlite fontconfig iproute2 tzdata \ - && adduser --disabled-password --home /home/container container +RUN apt-get update \ + && apt-get install -y curl ca-certificates openssl git tar bash sqlite3 fontconfig iproute2 tzdata \ + && useradd -m -d /home/container -s /bin/bash container \ + && apt-get clean && rm -rf /var/lib/apt/lists/*Note:
sqlitebecomessqlite3on Debian/Ubuntu, andadduser --disabled-passwordbecomesuseradd -m -d /home/container -s /bin/bash.
54-54: Inconsistent adduser command for Ubuntu base.The example shows Alpine's
addusersyntax, but since the Dockerfile uses an Ubuntu base (eclipse-temurin:8-jdk-noble), it should demonstrate Debian'suseraddcommand instead.🔎 Proposed fix
-adduser --disabled-password --home /home/container container +useradd -m -d /home/container -s /bin/bash container
🧹 Nitpick comments (1)
docs/eggs/creating-a-custom-egg.mdx (1)
61-61: Clarify the stop command signal options.The current wording suggests entering
^Cwill execute all listed signals, which is confusing. Based on QuintenQVD0's feedback, these are alternative signal options that can be used directly.🔎 Proposed clarification
-Next, you'll encounter `Stop Command` and, as the name implies, this should be the command used to safely stop the server. For some games, this is `stop` or `end`. Certain programs and games don't have a specified stop command, so you can enter `^C` to have Wings execute `^SIGINT`, `^SIGABRT`, `^SIGTERM` or `^SIGKILL` to end the process. +Next, you'll encounter `Stop Command` and, as the name implies, this should be the command used to safely stop the server. For some games, this is `stop` or `end`. Certain programs and games don't have a specified stop command, so you can use signal codes like `^C`, `^SIGINT`, `^SIGABRT`, `^SIGTERM`, or `^SIGKILL` to end the process.This clarifies that these are alternative options rather than a sequence of signals triggered by
^C.
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
docs/eggs/creating-a-custom-egg.mdxdocs/eggs/creating-a-custom-yolk.mdx
🧰 Additional context used
🪛 LanguageTool
docs/eggs/creating-a-custom-egg.mdx
[style] ~61-~61: Try moving the adverb to make the sentence clearer.
Context: ...ame implies, this should be the command used to safely stop the server. For some games, this is stop or `end...
(SPLIT_INFINITIVE)
[style] ~73-~73: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...scriptor. Wings will process this block prior to booting the server to ensure all of the...
(EN_WORDINESS_PREMIUM_PRIOR_TO)
[style] ~73-~73: Consider removing “of” to be more concise
Context: ...k prior to booting the server to ensure all of the required settings are defined and set c...
(ALL_OF_THE)
[style] ~188-~188: Consider an alternative for the often overused word ‘important’.
Context: ...file to perform actions, thus it is not important for the user to see. Finally, you will...
(NOT_IMPORTANT)
[style] ~190-~190: Consider removing “of” to be more concise
Context: ...10 characters in length. You can find all of the available validation rules in the [Lara...
(ALL_OF_THE)
docs/eggs/creating-a-custom-yolk.mdx
[grammar] ~12-~12: Ensure spelling is correct
Context: ...a specific manner. In the Past we have tred to make use of [Alpine Linux](https://a...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~12-~12: Consider a more concise word here.
Context: ...org) as much as possible for our images in order to keep their size down. But for my exampl...
(IN_ORDER_TO_PREMIUM)
[style] ~75-~75: Consider a more concise word here.
Context: ...rypoint.sh"] ``` ## Entrypoint Script In order to complete this Dockerfile, we will nee...
(IN_ORDER_TO_PREMIUM)
🔇 Additional comments (2)
docs/eggs/creating-a-custom-egg.mdx (2)
147-181: Excellent documentation of variable referencing patterns.The examples clearly demonstrate the three different contexts where egg variables can be referenced:
- Bare variable syntax
{{VARIABLE_NAME}}in startup commands- Namespaced syntax
{{server.environment.VARIABLE_NAME}}in configuration parsers- Shell variable syntax
${VARIABLE_NAME}in install scriptsThis addresses previous feedback about clarifying how to reference egg variables.
1-298: Well-structured and comprehensive egg documentation.This documentation provides thorough coverage of egg creation including:
- Clear explanations of all configuration sections
- Multiple practical examples (Minecraft, configuration parsers, install scripts)
- Important warnings about container paths and editing built-in eggs
- Proper handling of default variables and validation rules
The structure flows logically from basic configuration through advanced topics like configuration file parsing and install scripts.
Updated Dockerfile to support multi-platform builds and improved user setup.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
♻️ Duplicate comments (2)
docs/eggs/creating-a-custom-yolk.mdx (2)
12-12: Fix spelling and capitalization errors (still present from previous review).Line 12 contains typos that were flagged in previous reviews but remain unfixed: "Past" should be lowercase "past" and "tred" should be "tried".
🔎 Proposed fix
-In the Past we have tred to make use of [Alpine Linux](https://alpinelinux.org) as much as possible for our images in order to keep their size down. But for my example we will just use what most eggs are built on, Ubuntu. +In the past we have tried to make use of [Alpine Linux](https://alpinelinux.org) as much as possible for our images in order to keep their size down. But for my example we will just use what most eggs are built on, Ubuntu.
83-83: Update text to reflect the actual package manager (still present from previous review).Line 83 incorrectly states "using Alpine's package manager:
apk" when the example Dockerfile uses Ubuntu withapt. This was flagged in previous reviews but remains unfixed.🔎 Proposed fix
-The next thing we do is install the dependencies we will need using Alpine's package manager: `apk`. You'll notice some specific flags that keep the container small, including `--no-cache`, as well as everything being contained in a single [`RUN`](https://docs.docker.com/engine/reference/builder/#run) block. +The next thing we do is install the dependencies we will need using Ubuntu's package manager: `apt`. You'll notice we clean up the apt cache afterwards to keep the container small, as well as everything being contained in a single [`RUN`](https://docs.docker.com/engine/reference/builder/#run) block.
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
docs/eggs/creating-a-custom-yolk.mdx
🧰 Additional context used
🪛 LanguageTool
docs/eggs/creating-a-custom-yolk.mdx
[grammar] ~12-~12: Ensure spelling is correct
Context: ...a specific manner. In the Past we have tred to make use of [Alpine Linux](https://a...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~12-~12: Consider a more concise word here.
Context: ...org) as much as possible for our images in order to keep their size down. But for my exampl...
(IN_ORDER_TO_PREMIUM)
[style] ~123-~123: Consider an alternative adverb to strengthen your wording.
Context: ...ccumulating when child processes aren't properly cleaned up :::warning Sometimes you ma...
(PROPERLY_THOROUGHLY)
[style] ~130-~130: Consider a more concise word here.
Context: ... is located. ::: ## Entrypoint Script In order to complete this Dockerfile, we will nee...
(IN_ORDER_TO_PREMIUM)
🔇 Additional comments (2)
docs/eggs/creating-a-custom-yolk.mdx (2)
14-59: Dockerfile example is well-structured.The Dockerfile example correctly uses Ubuntu-based eclipse-temurin image with
aptpackage manager, includes necessary dependencies (includingiproute2andtzdataas noted in PR comments), and follows best practices with proper user setup and tini integration.
112-124: Excellent documentation of Tini usage.The explanation of the ENTRYPOINT with Tini is thorough and educational, covering why it's needed for signal handling and zombie process reaping. This adds significant value for users new to container init systems.
|
just a FYI Im Dr.reeves on discord. |
Corrected the command from 'adduser' to 'useradd' for clarity.
Clarify the purpose of the useradd command in the RUN block.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (2)
docs/eggs/creating-a-custom-yolk.mdx (2)
12-12: Fix spelling and grammar errors.The text contains two errors: "Past" should be lowercase "past", and "tred" should be "tried".
🔎 Proposed fix
-In the Past we have tred to make use of [Alpine Linux](https://alpinelinux.org) as much as possible for our images in order to keep their size down. But for my example we will just use what most eggs are built on, Ubuntu. +In the past we have tried to make use of [Alpine Linux](https://alpinelinux.org) as much as possible for our images in order to keep their size down. But for my example we will just use what most eggs are built on, Ubuntu.
83-83: Update package manager reference to match the Dockerfile.The text incorrectly references "Alpine's package manager:
apk" when the Dockerfile uses Ubuntu withapt-get. The explanation should match the actual implementation.🔎 Proposed fix
-The next thing we do is install the dependencies we will need using Alpine's package manager: `apk`. You'll notice some specific flags that keep the container small, including `--no-cache`, as well as everything being contained in a single [`RUN`](https://docs.docker.com/engine/reference/builder/#run) block. +The next thing we do is install the dependencies we will need using Ubuntu's package manager: `apt`. You'll notice we clean up the apt cache afterwards to keep the container small, as well as everything being contained in a single [`RUN`](https://docs.docker.com/engine/reference/builder/#run) block.
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
docs/eggs/creating-a-custom-yolk.mdx
🧰 Additional context used
🪛 LanguageTool
docs/eggs/creating-a-custom-yolk.mdx
[grammar] ~12-~12: Ensure spelling is correct
Context: ...a specific manner. In the Past we have tred to make use of [Alpine Linux](https://a...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~12-~12: Consider a more concise word here.
Context: ...org) as much as possible for our images in order to keep their size down. But for my exampl...
(IN_ORDER_TO_PREMIUM)
[style] ~123-~123: Consider an alternative adverb to strengthen your wording.
Context: ...ccumulating when child processes aren't properly cleaned up :::warning Sometimes you ma...
(PROPERLY_THOROUGHLY)
[style] ~130-~130: Consider a more concise word here.
Context: ... is located. ::: ## Entrypoint Script In order to complete this Dockerfile, we will nee...
(IN_ORDER_TO_PREMIUM)
🔇 Additional comments (2)
docs/eggs/creating-a-custom-yolk.mdx (2)
14-59: LGTM: Dockerfile is well-structured.The Dockerfile correctly uses the Ubuntu-based Temurin image with appropriate
aptpackage management, includes required packages (iproute2,tzdata), and properly sets up the non-rootcontaineruser with the correct home directory.
129-187: LGTM: Clear and accurate entrypoint documentation.The entrypoint script and its explanation are well-structured. The walkthrough of variable substitution with concrete examples (e.g.,
{{SERVER_MEMORY}}→1024) makes it easy to understand how the startup command transformation works.
Updated installation instructions to use Ubuntu's package manager and added a list of dependencies.
Updated examples of target operating systems in documentation.
Added missing WORKDIR definition and clarified ENTRYPOINT setup.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (2)
docs/eggs/creating-a-custom-yolk.mdx (2)
83-86: Minor inconsistencies in package manager references and syntax highlighting.Two small inconsistencies:
- Line 83 refers to
apt-get, but the actual commands useapt(lines 86-87)- The code block starting at line 86 uses
bashas the language identifier, but the content is Dockerfile syntax🔎 Proposed fixes
Update the text to match the actual command:
-The next thing we do is install the dependencies we will need using Ubuntu's package manager: `apt-get`. To keep things clean everything is being contained in a single [`RUN`](https://docs.docker.com/engine/reference/builder/#run) block. +The next thing we do is install the dependencies we will need using Ubuntu's package manager: `apt`. To keep things clean everything is being contained in a single [`RUN`](https://docs.docker.com/engine/reference/builder/#run) block.Update the code block language for proper syntax highlighting:
-```bash +```dockerfile RUN apt update -y \ && apt install -y \
110-111: Usedockerfilesyntax highlighting for consistency.The code blocks at lines 110, 120, and 127 display Dockerfile commands but use
bashas the language identifier. For consistency with the rest of the document and proper syntax highlighting, these should usedockerfile.🔎 Proposed fix
Line 110:
-```bash +```dockerfile RUN useradd -m -d /home/container -s /bin/bash containerLine 120:
-```bash +```dockerfile ENV USER=container HOME=/home/containerLine 127:
-```bash +```dockerfile WORKDIR /home/containerAlso applies to: 120-121, 127-128
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
docs/eggs/creating-a-custom-yolk.mdx
🧰 Additional context used
🪛 LanguageTool
docs/eggs/creating-a-custom-yolk.mdx
[style] ~12-~12: Consider a more concise word here.
Context: ...org) as much as possible for our images in order to keep their size down. But for my exampl...
(IN_ORDER_TO_PREMIUM)
[style] ~151-~151: Consider an alternative adverb to strengthen your wording.
Context: ...ccumulating when child processes aren't properly cleaned up :::warning Sometimes you ma...
(PROPERLY_THOROUGHLY)
[style] ~158-~158: Consider a more concise word here.
Context: ... is located. ::: ## Entrypoint Script In order to complete this Dockerfile, we will nee...
(IN_ORDER_TO_PREMIUM)
|
|
||
| ## Build-time variables | ||
|
|
||
| - `$TARGETOS` - Target operating system (e.g., `Ubuntu`, `Arch`) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct the $TARGETOS examples.
The examples for $TARGETOS are incorrect. This variable refers to the operating system family (linux, windows, darwin), not specific distributions like Ubuntu or Arch.
🔎 Proposed fix
-- `$TARGETOS` - Target operating system (e.g., `Ubuntu`, `Arch`)
+- `$TARGETOS` - Target operating system (e.g., `linux`, `windows`, `darwin`)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - `$TARGETOS` - Target operating system (e.g., `Ubuntu`, `Arch`) | |
| - `$TARGETOS` - Target operating system (e.g., `linux`, `windows`, `darwin`) |
🤖 Prompt for AI Agents
In docs/eggs/creating-a-custom-yolk.mdx around line 75, the `$TARGETOS` examples
incorrectly show distributions like `Ubuntu` and `Arch`; update the text to
indicate OS family names (e.g., `linux`, `windows`, `darwin`) instead of
specific distributions so the variable reflects platform families rather than
distro names.
|
@CodeRabbit recheck |
|
@NerdsCorp: I'll trigger a review of the changes now. ✅ Actions performedReview triggered.
|

This add the missing egg docs modified from pterodactyl and added some extras.
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.