Eggy a nests v Pterodactylu – import, úprava a vlastní egg
Co jsou nests a eggy v Pterodactylu, jak importovat komunitní egg, upravit startovní příkaz a proměnné a jak napsat jednoduchý vlastní egg.
V Pterodactylu nevytváříte „Minecraft server“ ani „Rust server“ napřímo. Vytváříte server z eggu – šablony, která říká, jaký Docker image použít, jak hru nainstalovat a jak ji spustit. Eggy jsou seskupené do nests (hnízd), například nest Minecraft obsahuje eggy Vanilla, Paper, Forge, Sponge a BungeeCord.
Z čeho se egg skládá
| Část | K čemu slouží |
|---|---|
| Docker images | Image(y), ve kterých server běží – např. různé verze Javy |
| Startup command | Příkaz pro spuštění, s proměnnými ve složených závorkách |
| Configuration | Úpravy konfiguračních souborů hry před startem, text „server je online“, stop příkaz |
| Variables | Proměnné prostředí, které může admin nebo uživatel měnit |
| Install script | Skript, který při instalaci stáhne hru do /mnt/server |
Typický startovní příkaz Minecraft eggu:
java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}
SERVER_MEMORY, SERVER_PORT a SERVER_IP dosazuje Panel sám podle limitů a alokace. SERVER_JARFILE je proměnná definovaná v eggu.
Import komunitního eggu
Výchozí instalace obsahuje jen pár eggů. Další najdete v komunitních repozitářích na GitHubu – největší je dnes organizace pelican-eggs (dříve repozitář parkervcp/eggs). Egg je jeden JSON soubor.
- Stáhněte JSON eggu (u souboru na GitHubu tlačítko „Raw“ → uložit).
- V administraci Nests klikněte na Import Egg.
- Vyberte soubor a cílový nest (nebo nejdřív vytvořte nový, např. „Steam hry“).
Po importu zkontrolujte záložku Variables a vyzkoušejte instalaci na testovacím serveru. Komunitní eggy se liší kvalitou a některé předpokládají konkrétní verzi Panelu.
Úprava existujícího eggu
Typické úpravy:
- Přidání Docker image – např. novější Java pro Minecraft 1.20.5+, který vyžaduje Javu 21. V záložce eggu přidejte řádek do „Docker Images“ ve formátu
Java 21|ghcr.io/pterodactyl/yolks:java_21. Uživatel si pak image vybere v Settings serveru (pokud to egg dovolí). - Úprava startovního příkazu – třeba přidání Aikarových flagů (viz Aikar flags).
- Nová proměnná – například volba verze hry pro instalační skript.
Změna startovního příkazu v eggu se projeví jen u serverů, které výchozí příkaz nepřepsaly. Existující servery mají příkaz uložený i u sebe – zkontrolujte záložku Startup u serveru v administraci.
Proměnné a validace
Každá proměnná má:
- Environment Variable – název, pod kterým je dostupná v kontejneru i jako
{{NAZEV}}, - Default Value,
- Users Can View / Users Can Edit – zda ji vidí a mění zákazník,
- Input Rules – validační pravidla ve stylu Laravelu.
Příklady pravidel:
required|string|max:20
required|regex:/^([\w\d._-]+)(\.jar)$/
nullable|in:true,false
required|integer|between:1,100
Proměnnou, kterou uživatel nesmí měnit (např. URL ke stažení), nastavte jako needitovatelnou.
Jednoduchý vlastní egg
Minimální egg pro Node.js aplikaci, která se stahuje z Git repozitáře:
Docker image: ghcr.io/parkervcp/yolks:nodejs_20
Startup:
if [ -f package.json ]; then npm install --omit=dev; fi; node {{MAIN_FILE}}
Install script (kontejner node:20-bookworm-slim, entrypoint bash):
#!/bin/bash
apt-get update && apt-get install -y git ca-certificates
cd /mnt/server
if [ -n "${GIT_REPO}" ]; then
git clone --depth 1 "${GIT_REPO}" . || echo "Klonování selhalo"
fi
echo "Instalace dokončena"
Proměnné: GIT_REPO (nullable|string) a MAIN_FILE (required|string|max:64, výchozí index.js).
Configuration → Start: text, podle kterého Panel pozná, že server naběhl. Pro aplikace bez jasné hlášky lze použít JSON:
{
"done": "Listening"
}
Stop command: pro Node.js stačí ^C (pošle signál SIGINT).
Instalační skript běží v samostatném kontejneru, který má soubory serveru připojené v /mnt/server. Za běhu je pak server ve svém kontejneru vidí v /home/container.
Export a záloha eggů
Upravený egg si exportujte (tlačítko Export v detailu eggu) a uložte do gitu. Při aktualizaci Panelu se výchozí eggy mohou přepsat seedem, vlastní úpravy výchozích eggů tak můžete ztratit. Bezpečnější je upravovat kopii eggu (import pod jiným názvem) než originál.
Tipy
- Testujte vždy na novém serveru – reinstalace existujícího serveru může smazat soubory, které instalační skript přepisuje.
- Chyby instalace najdete v logu na nodu:
/var/log/pterodactyl/install/<uuid>.log. - Pokud server po startu zůstává ve stavu „Starting“, nesedí text v
dones výstupem hry.
Psaní install skriptů je klasická úloha, se kterou pomůže ColdHost AI v režimu Programování – popište hru a zdroj souborů a nechte si navrhnout skript i JSON konfiguraci.