HomeDocsFeaturesImage Store
Features

Image Store

Manage server image definitions for game hosting.

bthavanishBy bthavanish

Image Store

Images (also called eggs) define how game servers are configured. Each image specifies the Docker image, startup command, environment variables, and other server parameters.

Image Model

FieldTypeDescription
idIntAuto-incrementing ID
UUIDUUIDUnique identifier
nameStringDisplay name
descriptionStringDescription
authorStringImage author
authorNameStringAuthor display name
dockerImagesTextComma-separated allowed Docker images
startupTextDefault startup command
stopTextStop command
startup_doneTextString that indicates startup is complete
config_filesTextConfig file paths
infoTextAdditional information
scriptsTextSetup scripts
variablesTextEnvironment variable definitions
portRequirementsTextRequired port allocations JSON
statusStringapproved, pending, or rejected
createdByIdInt?User who submitted (for user images)
rejectionReasonString?Why image was rejected

Admin Image Management

Create Image

POST /api/v2/admin/images
{
  "name": "Minecraft",
  "dockerImages": "itzg/minecraft-server:latest",
  "startup": "java -Xmx${MEMORY}M -jar server.jar nogui",
  "variables": "[...]"
}

Upload Egg JSON

Import from a Pterodactyl-compatible egg JSON file:

POST /api/v2/admin/images/upload
Content-Type: multipart/form-data

Import from URL

POST /api/v2/admin/images/import-url
{ "url": "https://example.com/egg.json" }

Image Store Catalogue

Browse available images from the remote catalogue:

GET /api/v2/admin/images/store/catalogue

Refresh the catalogue:

POST /api/v2/admin/images/store/refresh

Install an image from the store:

POST /api/v2/admin/images/store/install

User-Submitted Images

If allowUserCreateImages is enabled, users can submit images for admin approval:

POST /api/v2/account/images
{
  "name": "Custom Server",
  "dockerImages": "my-image:latest"
}

User images start with status: "pending". Admins approve or reject them:

POST /api/v2/admin/images/:id/approve
POST /api/v2/admin/images/:id/reject

Image Variables

Variables define environment variables for servers. Each variable has:

FieldDescription
keyVariable name
descriptionHelp text
defaultDefault value
typeInput type (text, number, boolean, etc.)
requiredWhether the variable is required
user_viewableShow to users
user_editableAllow users to change
rulesValidation rules

Egg Compatibility

The panel supports Pterodactyl egg format. The egg parser (src/handlers/utils/egg/eggParser.ts) handles:

  • Detecting Pterodactyl egg JSON files
  • Parsing egg data into the panel’s image format
  • Normalizing field names
  • Validating required fields

Image Caching

Images are cached in memory (src/handlers/imagesCache.ts) for fast access. The cache is invalidated when images are created, updated, or deleted.