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 new guides: creating/configuring custom eggs (metadata, startup, process management, config parsing/replacements, variables, install scripts, readiness indicators, examples, and warnings) and building custom yolk Docker images with entrypoint/startup interpolation patterns and examples.
    • Improved Docker syntax 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 ca9d1f3
🔍 Latest deploy log https://app.netlify.com/projects/pelica/deploys/6952b3ab51d4140008382fed
😎 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

📝 Walkthrough

Walkthrough

Adds 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 docker to Prism languages in the Docusaurus config.

Changes

Cohort / File(s) Summary
Egg Documentation
docs/eggs/creating-a-custom-egg.mdx
New comprehensive guide for creating and configuring a custom Egg: metadata, startup commands, denylist, features/tags, update URL, yolks (Docker), process management, configuration file parsers (properties/yaml/json/ini/xml), find/replace & wildcard semantics, start/done indicators, variables (env/validation/permissions), install script patterns, container path warnings, and exit codes.
Yolk (Docker Image) Documentation
docs/eggs/creating-a-custom-yolk.mdx
New guide showing a Dockerfile and entrypoint.sh example for building Yolks (Java/OpenJDK focus): build args ($TARGETOS, $TARGETARCH), apt dependency installation, user/ENV/WORKDIR setup, Tini/init handling, MODIFIED_STARTUP placeholder interpolation, and permission notes for entrypoint.
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 the existing "Wings" and "Guides" categories.
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 nibble docs and stitch a yolk with care,

I tuck startup flags in blankets of air,
Entrypoints hum, containers wake and sing,
Eggs line up neat, ready for spring,
I hop away joyful — code warmed like spring.

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Add Egg Docs' clearly and concisely summarizes the main change: adding new documentation for eggs to the project.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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
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 (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

📥 Commits

Reviewing files that changed from the base of the PR and between 2a652dd and d651331.

📒 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 container with home at /home/container). The Alpine-specific adduser syntax is correct.


95-136: Clear explanation with practical examples.

The step-by-step breakdown of how the MODIFIED_STARTUP variable replacement works is excellent, with concrete examples showing the transformation from template to final command. The note about chmod +x is a helpful practical tip.

@parkervcp
Copy link
Contributor

I am going to have to pull this locally to look at it in depth.

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

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9f5a24f and 7fe6659.

📒 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.port throughout, 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/server path 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.
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

♻️ 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's apk package manager on line 24 and Alpine's adduser syntax on line 25. This will fail at build time because apk doesn'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: sqlite becomes sqlite3 on Debian/Ubuntu, and adduser --disabled-password becomes useradd -m -d /home/container -s /bin/bash.


54-54: Inconsistent adduser command for Ubuntu base.

The example shows Alpine's adduser syntax, but since the Dockerfile uses an Ubuntu base (eclipse-temurin:8-jdk-noble), it should demonstrate Debian's useradd command 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 ^C will 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

📥 Commits

Reviewing files that changed from the base of the PR and between 7fe6659 and 9b4d6d5.

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

This 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.
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

♻️ 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 with apt. 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

📥 Commits

Reviewing files that changed from the base of the PR and between 9b4d6d5 and 012651b.

📒 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 apt package manager, includes necessary dependencies (including iproute2 and tzdata as 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.

@NerdsCorp
Copy link
Author

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.
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 (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 with apt-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

📥 Commits

Reviewing files that changed from the base of the PR and between 012651b and 04aec64.

📒 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 apt package management, includes required packages (iproute2, tzdata), and properly sets up the non-root container user 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.
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)


## Build-time variables

- `$TARGETOS` - Target operating system (e.g., `Ubuntu`, `Arch`)
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

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.

Suggested change
- `$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.

@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.

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