Under Construction: The site is currently being updated. That means its NOT FINISHED AND IS BEING BUILT!!!!!!
Docs / Features / Image Store
Features

Image Store

Manage server image definitions for game hosting.

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

Field Type Description
id Int Auto-incrementing ID
UUID UUID Unique identifier
name String Display name
description String Description
author String Image author
authorName String Author display name
dockerImages Text Comma-separated allowed Docker images
startup Text Default startup command
stop Text Stop command
startup_done Text String that indicates startup is complete
config_files Text Config file paths
info Text Additional information
scripts Text Setup scripts
variables Text Environment variable definitions
portRequirements Text Required port allocations JSON
status String approved, pending, or rejected
createdById Int? User who submitted (for user images)
rejectionReason String? 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:

Field Description
key Variable name
description Help text
default Default value
type Input type (text, number, boolean, etc.)
required Whether the variable is required
user_viewable Show to users
user_editable Allow users to change
rules Validation 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.