An Egg is EcliPanel’s term for a server type template. Every game server or application server is backed by an Egg that specifies its Docker image, startup command, environment variables, install script, and process configuration. When a user creates a new server they pick an Egg, which Wings then uses to provision, install, and manage the container. Admins create and maintain Eggs through the Eggs tab in the Staff Portal (requires theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/thenoname-gurl/EcliPanel/llms.txt
Use this file to discover all available pages before exploring further.
eggs:read permission) or directly via the admin API.
What Eggs define
name and description
name and description
A human-readable name shown to users in the server creation flow (e.g.,
Minecraft Java Edition) and an optional description. The author field records who created or last imported the Egg.dockerImage and dockerImages
dockerImage and dockerImages
The primary Docker image used to run the server container (e.g., When
ghcr.io/pterodactyl/yolks:java_21). For Eggs that support multiple runtime versions, dockerImages is a JSON object mapping a display label to an image reference:dockerImages is set, users can choose their preferred image at server creation or in startup settings.startup
startup
The startup command template executed inside the container. It may contain
{{VAR_NAME}} placeholders that are substituted with the corresponding environment variable values at runtime. For example:envVars (environment variables)
envVars (environment variables)
A JSON array of variable definitions. Each entry describes one configurable parameter:
user_viewable and user_editable control whether the user can see or change the value from their server startup page.installScript
installScript
A JSON object describing the one-time installation script that Wings runs when a server is first created:The install script runs in a separate, disposable container specified by
container using the given entrypoint.processConfig
processConfig
Controls how Wings detects startup completion and handles graceful shutdown:
startup.done is a list of strings; Wings watches the container’s stdout and considers the server started when it sees any of them. stop.type can be command (sends a console command), signal (sends a Unix signal), or stop.configFiles
configFiles
A JSON object mapping config file paths inside the container to template strings. Wings writes these files on server start, substituting environment variable placeholders. Example:
allowedPortals and visibility
allowedPortals and visibility
allowedPortals is a string array restricting which portal tiers can use this Egg (e.g., ["paid", "enterprise"]). The visible boolean controls whether non-admin users can see the Egg in the server creation flow. Admins always see all Eggs regardless of visible.rootless and requiresKvm
rootless and requiresKvm
rootless: true instructs Wings to run the container without root privileges. requiresKvm: true marks Eggs that need KVM hardware virtualization (e.g., full virtual machine images) and restricts provisioning to nodes with KVM support.fileDenylist and features
fileDenylist and features
fileDenylist is a string array of glob patterns for files that users are blocked from accessing or downloading through the file manager. features is a string array of capability tags (e.g., ["eula"]) that can enable special Wings behaviors.Importing Eggs
EcliPanel accepts Eggs in the Pterodactyl Definition Language v2 (PTDL v2) JSON format, which means community Eggs from the Pterodactyl ecosystem are directly importable.Obtain a PTDL v2 JSON file
Download an Egg JSON from a community repository or export one from another panel. The file typically contains a top-level
_comment key and an exported_at timestamp alongside all Egg fields.Import via URL or raw JSON
Send a The backend fetches the URL (if provided), parses the PTDL v2 envelope, and upserts the Egg into the database.
POST request to the import endpoint. You can supply either a publicly reachable URL or the raw JSON body:Creating Eggs manually
To create an Egg from scratch,POST /api/admin/eggs with at minimum name, dockerImage, and startup:
201 Created response contains the new Egg with its assigned id.
Editing Eggs
Update any field on an existing Egg withPUT /api/admin/eggs/:id. After saving, EcliPanel automatically pushes the updated configuration to all servers using that Egg via Wings, unless a specific server has opted out by setting autoSyncOnEggChange: false in its server config.
You can also trigger a manual sync for all servers belonging to an Egg:
respectOptOut: true skips servers that have explicitly disabled auto-sync. The response lists each server UUID and its sync result (synced, skipped_opt_out, node_service_unavailable, or error).
Mounts
Mounts are shared volume directories that can be attached to one or more servers, enabling persistent shared storage (e.g., a shared mod pack or asset directory). Mounts are managed separately from Eggs but are closely related to server configuration.- List all mounts:
GET /api/admin/mounts - Attach a mount to a server:
POST /api/admin/servers/:id/mounts - Remove a mount from a server:
DELETE /api/admin/servers/:id/mounts/:mountId
GET /api/servers/:id/mounts. Mounts are defined at the panel level and then selectively assigned to servers that need them.
Panel settings
Panel-wide settings — including feature flags — are stored as key/value pairs in thePanelSetting table and managed through GET /api/admin/settings and PATCH /api/admin/settings. The panelFeatureToggles key holds a JSON object controlling which features are active across the entire panel. See Feature flags for the complete list and their effects.