Řešení častých chyb Pterodactylu – 500, nedostupný Wings, CORS
Diagnostika nejčastějších problémů Pterodactylu. Chyba 500, červené srdíčko u nodu, websocket a CORS chyby, servery zaseknuté při instalaci.
Většina problémů s Pterodactylem spadá do několika opakujících se kategorií. Než začnete cokoli přeinstalovávat, projděte si tento přehled – ke každé chybě je postup, kde hledat a co obvykle pomůže.
Kde hledat logy
| Komponenta | Log |
|---|---|
| Panel (Laravel) | /var/www/pterodactyl/storage/logs/laravel-YYYY-MM-DD.log |
| nginx | /var/log/nginx/error.log |
| Queue worker | journalctl -u pteroq -n 100 |
| Wings | journalctl -u wings -n 200 nebo /var/log/pterodactyl/wings.log |
| Instalace serveru | /var/log/pterodactyl/install/<uuid>.log na nodu |
Pterodactyl umí také vygenerovat odkaz na diagnostický výpis Wings:
sudo wings diagnostics
Před sdílením výstupu kdekoli veřejně zkontrolujte, že neobsahuje tokeny.
Chyba 500 v Panelu
Hláška „An unexpected error was encountered“ je obecná, skutečná příčina je v Laravel logu:
tail -n 50 /var/www/pterodactyl/storage/logs/laravel-$(date +%F).log
Nejčastější příčiny:
- Práva souborů – Laravel nemůže zapisovat do
storagenebobootstrap/cache:bash cd /var/www/pterodactyl sudo chown -R www-data:www-data /var/www/pterodactyl/* sudo chmod -R 755 storage/* bootstrap/cache/ - Databáze – špatné heslo v
.envnebo neběžící MariaDB (SQLSTATE[HY000] [2002]). Ověřtesystemctl status mariadb. - Redis neběží –
Connection refusedu portu 6379.sudo systemctl enable --now redis-server. - Nedokončená aktualizace – chybějící migrace (
Base table or view not found). Spusťtephp artisan migrate --seed --force. - Zastaralá cache konfigurace po úpravě
.env:bash php artisan config:clear php artisan view:clear
Červené srdíčko – Panel nevidí Wings
Srdíčko v seznamu nodů se kontroluje z vašeho prohlížeče, ne ze serveru Panelu. Postupujte od nejjednoduššího:
- Běží Wings?
systemctl status wings. Pokud padá, spusťte ručněsudo wings --debuga čtěte chybu. - Je port otevřený? Z vlastního počítače:
curl -v https://node1.example.cz:8080. Timeout = firewall (ufw, firewall providera, bezpečnostní skupina). - Sedí SSL? Panel na HTTPS vyžaduje SSL i na Wings. V Panelu u nodu „Use SSL Connection“ a ve
config.ymlapi.ssl.enabled: trues platnými cestami k certifikátu. - Sedí FQDN? Doména v nastavení nodu musí odpovídat certifikátu.
- Cloudflare proxy? Oranžový mráček na doméně nodu port 8080 nepropustí. Přepněte na DNS only.
- Sedí token? Pokud jste node v Panelu smazali a vytvořili znovu, starý
config.ymluž neplatí. Vygenerujte konfiguraci znovu.
Websocket a CORS chyby
V konzoli serveru se objeví „Connection to websocket failed“ nebo v nástrojích prohlížeče (F12 → Console) hláška o CORS. Příčiny:
- Mixed content – Panel HTTPS, Wings HTTP. Řešení v článku SSL pro Panel i Wings.
- Nesouhlasí URL Panelu –
APP_URLv.envmusí přesně odpovídat adrese, ze které Panel otevíráte (včetněhttps://a bez lomítka na konci). Hodnotaremoteve Wingsconfig.ymlmusí ukazovat na stejnou adresu. - Panel na více doménách – Wings povoluje jen původ odpovídající
remote. Další domény přidejte doallowed_originsvconfig.yml: ```yaml allowed_origins:- https://panel2.example.cz ``` a restartujte Wings.
Po změně APP_URL nezapomeňte php artisan config:clear.
Server se zasekl při instalaci
Server zůstává ve stavu „Installing“ a nic se neděje:
- Neběží queue worker –
systemctl status pteroq. Bez něj se úloha instalace na node vůbec neodešle. - Instalační skript selhal – přečtěte install log na nodu. Typicky nefunkční URL ke stažení nebo chyba v eggu.
- Docker neumí stáhnout image – zkuste ručně
docker pull ghcr.io/pterodactyl/yolks:java_21.
Instalaci lze spustit znovu v administraci u serveru: Manage → Reinstall Server.
Server se nespustí / hned spadne
- Out of memory – kontejner dosáhl limitu RAM. Zkontrolujte, že
-Xmx(u Javy) je nižší než přidělená paměť, JVM potřebuje paměť i mimo heap. - Špatná verze Javy – „UnsupportedClassVersionError“ znamená starou Javu. Vyberte novější Docker image v záložce Startup.
- Disk plný –
df -h /var/lib/pterodactyl.
SFTP nefunguje
- Port je 2022, ne 22. V klientovi (FileZilla, WinSCP) nastavte protokol SFTP a port 2022.
- Uživatelské jméno má tvar
uzivatel.xxxxxxxx– přesný údaj najdete v záložce Settings serveru. - Heslo je heslo k účtu v Panelu.
Postup, když nevíte kde začít
systemctl status nginx php8.3-fpm mariadb redis-server pteroqna Panelu (verzi PHP upravte podle sebe).systemctl status docker wingsna nodu.- Poslední řádky Laravel logu a logu Wings.
Výstup těchto příkazů je přesně to, co se hodí vložit do ColdHost AI v režimu Řešení problémů – z logu obvykle rychle pozná, která z výše uvedených příčin platí.