Skip to content

Conversation

@NerdsCorp
Copy link

@NerdsCorp NerdsCorp commented Nov 29, 2025

This add the missing egg docs modified from pterodactyl and added some extras.

Summary by CodeRabbit

  • Documentation

    • Added two comprehensive guides: creating/configuring custom eggs (metadata, startup, process management, config parsing/replacements, variables, install scripts, readiness signals, examples, and warnings) and building custom yolk Docker images with entrypoint/startup interpolation patterns and examples.
    • Improved Docker language highlighting for examples.
  • Chore

    • Added a new "Eggs" section to the site navigation.

✏️ Tip: You can customize this high-level summary in your review settings.

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.
@netlify
Copy link

netlify bot commented Nov 29, 2025

Deploy Preview for pelica ready!

Name Link
🔨 Latest commit 2d0be70
🔍 Latest deploy log https://app.netlify.com/projects/pelica/deploys/6959fd84791c8000084897ce
😎 Deploy Preview https://deploy-preview-177--pelica.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link

coderabbitai bot commented Nov 29, 2025

Warning

Rate limit exceeded

@NerdsCorp has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 12 minutes and 6 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between e5c5822 and 2d0be70.

📒 Files selected for processing (1)
  • docs/eggs/creating-a-custom-yolk.mdx
📝 Walkthrough

Walkthrough

Adds two new documentation pages (custom Egg and Yolk), inserts an "Eggs" category into the docs sidebar, and enables Docker syntax highlighting by adding docker to Prism languages in the Docusaurus config.

Changes

Cohort / File(s) Summary
Egg Documentation
docs/eggs/creating-a-custom-egg.mdx
New comprehensive MDX guide for creating/configuring custom Eggs: metadata, startup commands, file denylist, features/tags, update URL, yolks, process management, config parsers (properties/yaml/json/ini/xml), find/replace & wildcard semantics, start/done indicators, variables (env/validation/permissions), install script patterns, and container-path warnings.
Yolk (Docker Image) Documentation
docs/eggs/creating-a-custom-yolk.mdx
New MDX guide for building Yolks (Java/OpenJDK focus): Dockerfile examples, build args ($TARGETOS, $TARGETARCH), dependencies, user/ENV/WORKDIR setup, Tini/ENTRYPOINT script workflow, entrypoint.sh behavior, placeholder interpolation into MODIFIED_STARTUP, and permission notes.
Sidebar Update
sidebars.ts
Adds an Eggs category to the main sidebar containing eggs/creating-a-custom-egg and eggs/creating-a-custom-yolk, placed between "Wings" and "Guides".
Syntax Highlighting
docusaurus.config.ts
Adds docker to Prism additionalLanguages to enable Docker/Dockerfile syntax highlighting.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐇 I hop through pages, stitching yolks by moonlight,

I whisper STARTUP flags into the night,
Eggs aligned, variables tucked just right,
Entrypoints sing, containers take flight,
I nibble a carrot, then vanish out of sight.

Pre-merge checks

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'Add Egg Docs' is vague and overly generic, lacking specificity about which egg documentation is being added or the scope of changes. Consider a more descriptive title such as 'Add documentation for creating custom eggs and yolks' to better convey the scope and content of the changes.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a 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 clarity

A 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 STARTUP is 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 sections

Very 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 images

The 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

📥 Commits

Reviewing files that changed from the base of the PR and between 9eba985 and bcfbfab.

📒 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 patterns

The structure and examples (Alpine base, /home/container, container user, entrypoint.sh, and MODIFIED_STARTUP handling) 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 correct

The new “Creating Eggs” category is well placed between “Wings” and “Guides”, and the items:

  • eggs/creating-a-custom-egg
  • eggs/creating-a-custom-docker-image

match the added doc paths, so Docusaurus should resolve them correctly.

Corrected grammatical errors and improved clarity in the documentation.
Copy link

@coderabbitai coderabbitai bot left a 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 naming

The 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 placement

The 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 adjective

Use "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

📥 Commits

Reviewing files that changed from the base of the PR and between bcfbfab and 980ee05.

📒 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)

Copy link

@coderabbitai coderabbitai bot left a 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 this Dockerfile" 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

📥 Commits

Reviewing files that changed from the base of the PR and between 980ee05 and 61a5572.

📒 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 sed to convert {{VARIABLE}} to $VARIABLE syntax
  • 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_STARTUP variable 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.
@NerdsCorp
Copy link
Author

@rmartinoscar changes have been made, i did change some of the wording as well, only because the panel shows Docker Images rather than yolks.
image

Copy link

@coderabbitai coderabbitai bot left a 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_limit starts 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

📥 Commits

Reviewing files that changed from the base of the PR and between 61a5572 and a77326b.

📒 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 (container user with /home/container home) 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, ^C for 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.

@NerdsCorp
Copy link
Author

closes issue #151

@NerdsCorp NerdsCorp requested a review from parkervcp December 19, 2025 23:51
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.
Copy link

@coderabbitai coderabbitai bot left a 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:

  1. Line 83 refers to apt-get, but the actual commands use apt (lines 86-87)
  2. The code block starting at line 86 uses bash as 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: Use dockerfile syntax highlighting for consistency.

The code blocks at lines 110, 120, and 127 display Dockerfile commands but use bash as the language identifier. For consistency with the rest of the document and proper syntax highlighting, these should use dockerfile.

🔎 Proposed fix

Line 110:

-```bash
+```dockerfile
 RUN         useradd -m -d /home/container -s /bin/bash container

Line 120:

-```bash
+```dockerfile
 ENV         USER=container HOME=/home/container

Line 127:

-```bash
+```dockerfile
 WORKDIR     /home/container

Also applies to: 120-121, 127-128

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cf132d5 and ca9d1f3.

📒 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)

@NerdsCorp
Copy link
Author

@CodeRabbit recheck

@coderabbitai
Copy link

coderabbitai bot commented Dec 29, 2025

@NerdsCorp: I'll trigger a review of the changes now.

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link

@coderabbitai coderabbitai bot left a 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 (1)
docs/eggs/creating-a-custom-yolk.mdx (1)

75-75: Complete the TARGETOS examples.

The line appears incomplete with a trailing comma and closing backtick. It should list multiple OS examples.

🔎 Proposed fix
-- `$TARGETOS` - Target operating system (e.g., `linux`,)
+- `$TARGETOS` - Target operating system (e.g., `linux`, `windows`, `darwin`)
🧹 Nitpick comments (1)
docs/eggs/creating-a-custom-yolk.mdx (1)

83-83: Update text to match the actual command used.

The text mentions apt-get, but the Dockerfile example on lines 28-45 uses apt (without the -get suffix). While both are valid, the documentation should match the example code for consistency.

🔎 Proposed fix
-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.
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ca9d1f3 and f15c46d.

📒 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)

Yes this is like this in the build repo but for examples this is better
Copy link

@coderabbitai coderabbitai bot left a 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)

75-75: Fix trailing comma in examples.

Line 75 has "e.g., linux,)" with a trailing comma but only one example. Either add more examples (e.g., linux, windows, darwin) or remove the comma.

🔎 Proposed fix
-- `$TARGETOS` - Target operating system (e.g., `linux`,)
+- `$TARGETOS` - Target operating system (e.g., `linux`, `windows`, `darwin`)

12-12: Consider more concise wording (optional).

The static analysis tool suggests minor style improvements for conciseness:

  • Line 12: "in order to" could be simplified to "to"
  • Line 151: Consider strengthening "properly cleaned up"
  • Line 158: "In order to" could be simplified to "To"

These are optional refinements that make the text slightly more concise.

🔎 Proposed fixes
-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.
+In the past we have tried to make use of [Alpine Linux](https://alpinelinux.org) as much as possible for our images to keep their size down. But for my example we will just use what most eggs are built on, Ubuntu.
-- **Zombie reaping:** Prevents zombie processes from accumulating when child processes aren't properly cleaned up
+- **Zombie reaping:** Prevents zombie processes from accumulating when child processes aren't cleaned up correctly
-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.

Also applies to: 151-151, 158-158

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f15c46d and 037a1e2.

📒 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)

Updated the author section to specify the email and added 'Coming Soon' to the Log Storage header. Clarified the usage of the 'Copy Settings From' dropdown.
@NerdsCorp NerdsCorp requested a review from rmartinoscar January 3, 2026 08:31
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 037a1e2 and 04a00ea.

📒 Files selected for processing (1)
  • docs/eggs/creating-a-custom-egg.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)

Copy link

@coderabbitai coderabbitai bot left a 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 (1)
docs/eggs/creating-a-custom-egg.mdx (1)

38-38: Fix article and add proper punctuation.

The phrase "a out of disk space" should use "an" instead of "a" (before a vowel sound), and the quoted phrase needs proper punctuation.

🔎 Proposed fix
-| steam_disk_space          | Sets a limit to enable a "out of disk space" Popup if the host system is out of disk space |
+| steam_disk_space          | Sets a limit to enable an "out of disk space" popup if the host system is out of disk space |
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 04a00ea and 303ce95.

📒 Files selected for processing (1)
  • docs/eggs/creating-a-custom-egg.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)

Copy link

@coderabbitai coderabbitai bot left a 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 (1)
docs/eggs/creating-a-custom-egg.mdx (1)

38-38: Improve grammar and clarify the steam_disk_space feature description.

The current description has a grammatical error ("a out" should be "an out-of-disk-space") and could be more precise. Based on the earlier review discussion, this feature triggers a popup to warn users when the host system runs out of disk space, rather than setting a limit.

🔎 Suggested improvement
-| steam_disk_space          | Sets a limit to enable a "out of disk space" Popup if the host system is out of disk space |
+| steam_disk_space          | Triggers an out-of-disk-space popup when the host system runs out of disk space |
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 303ce95 and 0104b24.

📒 Files selected for processing (1)
  • docs/eggs/creating-a-custom-egg.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)

Copy link

@coderabbitai coderabbitai bot left a 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 (1)
docs/eggs/creating-a-custom-yolk.mdx (1)

83-83: Minor terminology inconsistency.

The text references "apt-get" as Ubuntu's package manager, but the example code (lines 86-87) uses the apt command. While both work, using consistent terminology throughout improves clarity.

🔎 Proposed fix
-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.
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 66e564d and e5c5822.

📒 Files selected for processing (2)
  • docs/eggs/creating-a-custom-egg.mdx
  • 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)

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)

@NerdsCorp
Copy link
Author

@CodeRabbit recheck

@coderabbitai
Copy link

coderabbitai bot commented Jan 4, 2026

@NerdsCorp: I'll trigger a review of the changes now.

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants