Unified catalog · prog-language-eggs

Egg catalog

This collection ships one egg covering 54 languages. Every field below is read from the actual egg-programming-multi.json at build time. The org-wide browsable catalog lives at nest.potenfyr.in.

Prog-Language Eggs

PTDL_v2 · exported 2026-08-30 · author support@potenfyr.in
Active

Prog-Language Eggs - one egg for 50+ programming languages with package managers, auto-detection, memory tuning, and Dev Watch mode.

pid_limit41 variables54 languages
Docker image
ghcr.io/potenfyr-studios/prog-language-eggs:latest
Multi-Language (50+ Languages)
Startup / stop
bash /usr/local/bin/run.sh
# stop: ^C

Languages covered

The single image covers 54 languages, the full matrix lists runners, package managers and auto-detect triggers for each.

Node.js (JavaScript)TypeScriptBunDenoPythonJavaGoRustCC++C# / .NETPHPRubyStatic Website / SPAKotlinScalaSwiftDartZigLua / LuaJITElixirErlangHaskellPerlRJuliaClojureGroovyCrystalNimOCamlF#FortranFreePascalCOBOLAssembly (x86/ARM)VOdinGleamReScript / ReasonMLHaxeRacketScheme / GuileCommon LispDAdaSmalltalkTclPrologSolidity (Dev/Node)Bash / ShellPowerShellVisual Basic .NETVala

Install pass

On server creation the egg runs its install script inside ghcr.io/pterodactyl/installers:alpine (entrypoint ash): base tooling, then a git sync that trims stray whitespace from startup variables, re-points origin at the current repo/branch, and fetches over a non-empty workspace without wiping it.

Key variables

The ten variables most servers touch, the complete set of 41 lives in the setup & startup reference.

VariableDefaultEditableDescription
LANGUAGEautoyesTarget language or 'auto' for intelligent file auto-detection. After the first boot the detected value is pinned; set to 'auto-detect' to clear the pin and re-run detection.
RUNTIME_VERSIONlatestyesVersion of the primary runtime: 22 | 22.1 | 22.1.4 or keywords latest, stable, lts, alpha, beta, rc, preview, nightly. Validated & resolved from live upstream feeds. 'latest' resolves once, then pins to the exact version; set to 'auto-detect' to re-resolve.
EXTRA_RUNTIMESautoyesComma-separated extra toolchains to enable (e.g. 'python,java,go' or 'none').
GIT_REPO-yesGit repository URL to clone and sync on startup.
BUILD_COMMAND-yesOptional build or compilation command (e.g. 'npm run build', 'cargo build --release').
CUSTOM_COMMAND-yesCustom command to override the default runner entirely.
SUPERVISORautoyesMulti-process mode: auto (Procfile when present + language auto), procfile (force), single (never). Powers multi-layer apps in one container.
HEALTH_CHECK_PATH-yesHTTP path probed after boot (e.g. /healthz). Empty = disabled. Probe targets http://127.0.0.1:$SERVER_PORT<path>.
MEMORY_AUTO_TUNE1yesAuto-tune GC & memory limits to prevent container OOM (1 = Enabled, 0 = Disabled).
AUTO_UPDATE_EGG1yesCheck EGG_UPDATE_URL on startup and self-update the launcher when the upstream egg changed (1 = enabled, 0 = disabled).

File denylist

The panel file manager refuses to serve these paths, protecting the launcher and its self-update machinery from tampering:

Pattern
^\.potenfyr($|/)
^/?run\.sh$
^/?entrypoint\.sh$
^/?install\.sh$
^/?install-runtime\.sh$
^/?resolve-version\.sh$