Aktualizace Pterodactyl Panelu a Wings bez ztráty dat
Bezpečný postup aktualizace Pterodactylu – záloha databáze a .env, maintenance režim, migrace, restart workeru a aktualizace Wings na nodech.
Aktualizace Pterodactylu je rutinní operace na pár minut, ale jen pokud ji děláte ve správném pořadí. Nejčastější problémy po aktualizaci – chyba 500, rozbité stránky, servery zaseknuté ve frontě – vznikají vynecháním jednoho kroku. Tento postup odpovídá oficiálnímu návodu pro Panel 1.x.
Před aktualizací
1. Přečtěte si release notes. Na GitHubu u vydání (github.com/pterodactyl/panel/releases) bývá uvedeno, zda nová verze mění požadavky – typicky minimální verzi PHP. Pokud nová verze vyžaduje novější PHP, než máte, nejdřív aktualizujte PHP a v nginx změňte cestu k FPM socketu.
2. Zjistěte aktuální verzi:
cd /var/www/pterodactyl
php artisan p:info
Verzi vidíte také v administraci na úvodní stránce, kde Panel upozorňuje i na novou verzi.
3. Zálohujte databázi a .env:
mkdir -p ~/ptero-backup
sudo mysqldump --single-transaction panel > ~/ptero-backup/panel-$(date +%F).sql
sudo cp /var/www/pterodactyl/.env ~/ptero-backup/env-$(date +%F)
Soubor .env obsahuje APP_KEY. Bez něj záloha databáze není použitelná, protože některá data jsou šifrovaná.
Pokud běží Panel na VPS se snapshoty, udělejte navíc snapshot – je to nejrychlejší cesta zpět.
Aktualizace Panelu
Celý postup se spouští v adresáři Panelu:
cd /var/www/pterodactyl
Maintenance režim – uživatelé uvidí stránku údržby místo rozpracované aplikace:
php artisan down
Stažení nové verze přes stávající soubory:
curl -L https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz | tar -xzv
chmod -R 755 storage/* bootstrap/cache
Závislosti:
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
Vyčištění cache:
php artisan view:clear
php artisan config:clear
Migrace databáze:
php artisan migrate --seed --force
Parametr --seed aktualizuje výchozí nests a eggy. Pokud jste upravovali výchozí eggy přímo, mohou se přepsat – proto je lepší pracovat s vlastními kopiemi (viz Eggy a nests).
Práva souborů (na RHEL/Rocky je uživatel nginx místo www-data):
chown -R www-data:www-data /var/www/pterodactyl/*
Restart queue workeru – worker drží starý kód v paměti:
php artisan queue:restart
Vypnutí maintenance režimu:
php artisan up
Aktualizace Wings
Wings se aktualizuje výměnou binárky na každém nodu. Doporučuje se udržovat Wings a Panel ve stejné hlavní verzi (1.x s 1.x).
sudo systemctl stop wings
sudo curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"
sudo chmod u+x /usr/local/bin/wings
sudo systemctl restart wings
Zastavení Wings nevypíná běžící herní servery – kontejnery běží dál a po startu se k nim Wings znovu připojí. Během výměny ale nefunguje konzole a správa souborů, proto je dobré aktualizovat mimo špičku.
Ověření verze:
wings version
Kontrola po aktualizaci
- Přihlášení do Panelu a otevření administrace funguje.
- V administraci se zobrazuje nová verze.
- U všech nodů je zelené srdíčko.
- Na jednom serveru zkuste restart a otevření konzole.
journalctl -u pteroq -n 20neukazuje chyby.
Pokud po aktualizaci vidíte rozbitý vzhled nebo staré stránky, vynuťte obnovení prohlížeče (Ctrl+F5) – často jde jen o cache prohlížeče.
Když se něco pokazí
| Příznak | Řešení |
|---|---|
| Chyba 500 | Přečtěte Laravel log, často chybí migrace nebo práva |
| „Class not found“ | Znovu composer install --no-dev --optimize-autoloader |
| Composer hlásí nevhodnou verzi PHP | Aktualizujte PHP podle požadavků nové verze |
| Servery se neinstalují | php artisan queue:restart a systemctl restart pteroq |
Návrat k předchozímu stavu: obnovte snapshot, nebo stáhněte tarball konkrétní předchozí verze z GitHubu, rozbalte ho a naimportujte zálohu databáze:
sudo mysql panel < ~/ptero-backup/panel-YYYY-MM-DD.sql
Automatizace
Postup je vhodný na jednoduchý skript, ale nepouštějte ho automaticky z cronu. Aktualizaci je lepší spustit ručně po přečtení release notes. Pokud spravujete server přes ColdHost AI s připojeným VPS, můžete si nechat jednotlivé kroky navrhnout a schvalovat je postupně – při chybě uvidí AI výstup a navrhne další krok.