Přejít na obsah
Aktuální kupón:sleva 10 %Uplatnit v objednávce

Pterodactyl Panel: kompletní instalace na vlastní VPS

Nainstalujete Pterodactyl Panel na Ubuntu 24.04 nebo Debian 13: PHP 8.3, MariaDB, Redis, Nginx s HTTPS, frontu, cron a prvního administrátora. Každý krok i volba vysvětlené.

  • expert
  • ~90 min
  • Aktualizováno 1. 10. 2026

Nainstalujeme Pterodactyl Panel, webové rozhraní pro správu herních serverů, na vaši VPS. Na konci poběží na adrese https://panel.example.cz s certifikátem Let's Encrypt, frontou úloh, cronem a vaším administrátorským účtem.

Co budete potřebovat

  • VPS u StormHostu s čistou instalací Ubuntu 24.04 nebo Debianu 13
  • Doménu nebo subdoménu pro panel (v návodu panel.example.cz) a přístup k jejímu nastavení DNS
  • Připojení přes SSH jako root (návod)
  • Základní práci v terminálu: úpravy souborů v editoru nano, kopírování příkazů
  • Asi 90 minut

Jak to funguje#

Pterodactyl má dvě části. Panel je webová aplikace (PHP, framework Laravel), ve které zakládáte uživatele a servery a kde hráči ovládají konzoli. Wings je služba, která na serveru skutečně spouští herní servery v kontejnerech Dockeru. Panel i Wings můžou běžet na stejné VPS. Tento návod instaluje Panel, Wings přidáte v navazujícím návodu Pterodactyl Wings.

Panel potřebuje několik dalších programů:

SoučástK čemu ji Panel potřebuje
PHP 8.3 + PHP-FPMPanel je napsaný v PHP. PHP-FPM je proces, který PHP kód spouští pro webový server.
MariaDBDatabáze. Ukládá uživatele, servery, nastavení a šablony her.
RedisRychlé úložiště v paměti pro cache, přihlášení (session) a frontu úloh.
NginxWebový server. Přijímá požadavky z prohlížeče a předává je PHP-FPM.
ComposerSprávce knihoven pro PHP. Stáhne knihovny, které Panel potřebuje.
Cron a služba pteroqCron každou minutu spouští plánovač Panelu, pteroq zpracovává frontu úloh na pozadí (e-maily, naplánované úlohy serverů).

Panel samotný je nenáročný. Pokud na stejné VPS poběží i herní servery, plánujte RAM hlavně podle nich a připočtěte rezervu pro systém, databázi a Panel (orientačně 1–⁠2 GB).

Potřebujete opravdu vlastní panel?

Pterodactyl se vyplatí, když chcete na jedné VPS provozovat víc herních serverů, spravovat je přes web a dávat přístup dalším lidem. Pokud vám stačí jeden herní server, můžete si ho objednat přímo jako herní server a spravovat ho v zákaznické zóně bez instalace čehokoli.

Plán instalace#

FázeCo uděláte
1. DoménaNasměrujete panel.example.cz na IP adresu VPS.
2. FirewallOtevřete porty 80 a 443.
3. ZávislostiNainstalujete PHP 8.3, MariaDB, Redis, Nginx a Composer.
4. PanelStáhnete soubory Panelu, založíte databázi a nastavíte .env.
5. Databáze a adminVytvoříte tabulky a prvního administrátora.
6. PozadíNastavíte cron a službu fronty pteroq.
7. HTTPS a NginxZískáte certifikát a nastavíte webový server.
8. KontrolaPřihlásíte se a ověříte, že vše běží.

Doména a DNS#

Panel potřebuje vlastní doménu nebo subdoménu. Certifikát pro HTTPS se vydává na doménu, ne na IP adresu.

  1. V zákaznické zóně otevřete Moje služby, klikněte na VPS a v záložce Síť zkopírujte IPv4 adresu (a případně IPv6 adresu).

  2. U svého DNS hostingu vytvořte záznam typu A pro panel.example.cz s hodnotou IPv4 adresy VPS (například 203.0.113.10).

  3. Volitelně vytvořte i záznam AAAA s IPv6 adresou VPS (například 2001:db8::10). Konfigurace Nginx níže naslouchá i na IPv6.

  4. Na VPS ověřte, že doména už ukazuje správně:

    bash
    getent hosts panel.example.cz
    • getent hosts – zeptá se systémového DNS na adresu domény a vypíše ji.

    Uvidíte řádek s IP adresou vaší VPS. Když se nic nevypíše, počkejte pár minut (podle TTL záznamu) a zkuste to znovu.

Cloudflare: během instalace jen šedý mráček

Pokud doménu spravujete v Cloudflare, nechte záznam ve stavu DNS only (šedý mráček). Certifikát i první přihlášení tak ověříte napřímo. Na Proxied (oranžový mráček) můžete přepnout až na konci, viz Panel za Cloudflare. Postup s Cloudflare: Doména na VPS a Cloudflare.

Firewall#

Prohlížeč se k Panelu připojí na port 443 (HTTPS). Port 80 (HTTP) je potřeba pro ověření domény při vydání certifikátu a pro přesměrování na HTTPS.

  • Firewall v zákaznické zóně: pokud máte příchozí provoz v režimu Blokovat vše kromě povoleného, přidejte pravidla Příchozí · Povolit · TCP · port 80,443. Pravidlo pro SSH (port 22) musí zůstat. Návod: Firewall v zákaznické zóně.

  • UFW ve VPS: pokud ho používáte, povolte porty i v něm:

    bash
    ufw allow 80/tcp
    ufw allow 443/tcp
    • ufw allow 80/tcp – povolí příchozí TCP spojení na port 80.
    • ufw allow 443/tcp – totéž pro port 443.

Porty pro Wings (8080 a 2022) a pro herní servery otevřete až v návodu Pterodactyl Wings.

Instalace závislostí#

Nejdřív aktualizujte systém, ať instalujete na aktuální základ:

bash
apt update && apt -y upgrade
  • apt update – stáhne aktuální seznam balíčků.
  • apt -y upgrade – nainstaluje dostupné aktualizace; -y odpoví „ano“ na potvrzení.

Pak nainstalujte závislosti. Postup se liší podle systému: Ubuntu 24.04 má PHP 8.3 přímo v repozitáři, Debian 13 má ve výchozím repozitáři PHP 8.4, které Panel nepodporuje (aktuální Panel vyžaduje PHP 8.2 nebo 8.3). Na Debianu proto přidáte repozitář packages.sury.org, který doporučuje i oficiální dokumentace Pterodactylu.

Ubuntu 24.04

bash
apt -y install php8.3 php8.3-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} mariadb-server nginx tar unzip git redis-server curl

Na Ubuntu 24.04 nepřidávejte žádný repozitář pro PHP. Oficiální dokumentace zmiňuje repozitář ppa:ondrej/php jen pro starší Ubuntu 22.04.

Debian 13

Nejdřív přidejte repozitář s PHP 8.3:

bash
apt -y install lsb-release ca-certificates curl
curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
dpkg -i /tmp/debsuryorg-archive-keyring.deb
echo "deb [signed-by=/usr/share/keyrings/debsuryorg-archive-keyring.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
apt update
  • apt -y install lsb-release ca-certificates curl – nástroj pro zjištění názvu verze systému, certifikáty pro HTTPS a stahovací program curl.
  • curl -sSLo … debsuryorg-archive-keyring.deb – stáhne balíček s podpisovým klíčem repozitáře (-s tiše, -S ukázat chyby, -L následovat přesměrování, -o uložit do souboru).
  • dpkg -i … – nainstaluje klíč do /usr/share/keyrings/, apt jím pak ověřuje balíčky z repozitáře.
  • echo "deb …" > /etc/apt/sources.list.d/php.list – zapíše adresu repozitáře. $(lsb_release -sc) se nahradí kódovým názvem systému (trixie).
  • apt update – načte balíčky z nového repozitáře.

Pak nainstalujte závislosti:

bash
apt -y install php8.3 php8.3-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} mariadb-server nginx tar unzip git redis-server

MariaDB a Redis na Debianu 13 instalujte z výchozího repozitáře, žádný další repozitář nepotřebují.

Co instalační příkaz obsahuje:

BalíčekK čemu je
php8.3, php8.3-cliPHP 8.3 a jeho příkazová řádka (pro příkazy php artisan).
php8.3-fpmProces, přes který Nginx spouští PHP. Naslouchá na socketu /run/php/php8.3-fpm.sock.
php8.3-common, -gd, -mysql, -mbstring, -bcmath, -xml, -curl, -zipRozšíření PHP, která Panel vyžaduje: obrázky, připojení k MariaDB, práce s texty v UTF-⁠8, přesná matematika, XML, HTTP požadavky a ZIP archivy. Zápis php8.3-{common,cli,…} je zkratka shellu bash, rozepíše se na php8.3-common php8.3-cli ….
mariadb-serverDatabázový server.
nginxWebový server.
redis-serverRedis.
tar, unzip, git, curlRozbalování archivů a stahování; Composer je používá při instalaci knihoven.

Ověřte, že máte správnou verzi PHP:

bash
php -v
Výstuptext
PHP 8.3.x (cli) …

Na prvním řádku musí být PHP 8.3. Pokud vidíte PHP 8.4, podívejte se do části Když něco nefunguje.

Zkontrolujte, že běží služby:

bash
systemctl is-active mariadb redis-server nginx php8.3-fpm
  • systemctl is-active – vypíše stav každé uvedené služby.

Uvidíte čtyřikrát active. Pokud je některá inactive, spusťte ji a zapněte po startu příkazem systemctl enable --now <NAZEV_SLUZBY>, například systemctl enable --now redis-server.

Composer#

Composer stáhne PHP knihovny Panelu. Nainstalujte ho oficiálním instalátorem:

bash
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
  • curl -sS https://getcomposer.org/installer – stáhne instalační skript Composeru.
  • | php -- – předá skript PHP ke spuštění; -- odděluje parametry PHP od parametrů instalátoru.
  • --install-dir=/usr/local/bin – kam se Composer nainstaluje (složka, ve které systém hledá programy).
  • --filename=composer – název programu, takže ho pak spustíte příkazem composer.

Ověření: composer --version vypíše Composer version 2.…. Jako root uvidíte i varování Do not run Composer as root/super user! a možná otázku Continue as root/super user [yes]?. Potvrďte ji klávesou Enter. Při instalaci Panelu níže varování potlačí proměnná COMPOSER_ALLOW_SUPERUSER=1.

Stažení Panelu#

  1. Vytvořte složku pro Panel a přejděte do ní:

    bash
    mkdir -p /var/www/pterodactyl
    cd /var/www/pterodactyl
    • mkdir -p – vytvoří složku (i s nadřazenými); když už existuje, nevypíše chybu.
    • cd – přepne do složky. Všechny další příkazy php artisan spouštějte v ní.
  2. Stáhněte a rozbalte nejnovější verzi Panelu:

    bash
    curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
    tar -xzvf panel.tar.gz
    • curl -Lo panel.tar.gz … – stáhne archiv nejnovějšího vydání z GitHubu a uloží ho jako panel.tar.gz.
    • tar -xzvf – rozbalí archiv (x rozbalit, z formát gzip, v vypisovat soubory, f ze souboru).
  3. Nastavte práva složek, do kterých Panel zapisuje:

    bash
    chmod -R 755 storage/* bootstrap/cache/
    • chmod -R 755 – vlastník smí číst, zapisovat a vstupovat do složek, ostatní jen číst a vstupovat. -R platí pro celý obsah.
    • storage/ – logy, cache a nahrané soubory; bootstrap/cache/ – zkompilovaná konfigurace.

Databáze pro Panel#

Panel potřebuje vlastní databázi a vlastního uživatele. Databázového uživatele root autoři Pterodactylu pro Panel výslovně zakazují: kdyby někdo Panel napadl, získal by přístup ke všem databázím na VPS.

  1. Vygenerujte si silné heslo pro databázového uživatele, například v generátoru hesel. Použijte jen písmena a číslice (aspoň 24 znaků), ať nemusíte řešit speciální znaky v SQL a v .env. Heslo si uložte, budete ho za chvíli zadávat znovu.

  2. Přihlaste se do MariaDB jako správce:

    bash
    mariadb
    • mariadb – klient databáze. Uživatel root systému se na Ubuntu i Debianu přihlásí do MariaDB bez hesla (ověřením přes unix socket). Uvidíte výzvu MariaDB [(none)]>.
  3. Vytvořte uživatele a databázi. Za <HESLO_DB_PANELU> dosaďte heslo z kroku 1 (apostrofy kolem hesla ponechte):

    SQL
    CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY '<HESLO_DB_PANELU>';
    CREATE DATABASE panel;
    GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1';
    exit
ŘádekCo dělá
CREATE USER 'pterodactyl'@'127.0.0.1' …Založí uživatele pterodactyl, který se smí přihlásit jen z adresy 127.0.0.1, tedy jen z této VPS přes TCP. Zvenku se tímto účtem připojit nejde.
IDENTIFIED BY '…'Nastaví uživateli heslo.
CREATE DATABASE panel;Vytvoří prázdnou databázi panel.
GRANT ALL PRIVILEGES ON panel.* …Dá uživateli všechna práva, ale jen k databázi panel (panel.* = všechny tabulky v ní). K jiným databázím přístup nemá.
exitUkončí klienta MariaDB.

Proč 127.0.0.1, a ne localhost

Panel se k databázi připojuje přes TCP na adresu 127.0.0.1. Autoři Pterodactylu výslovně nedoporučují zadávat localhost, protože s ním PHP zkouší spojení přes socket a dochází k potížím. Uživatel v databázi proto musí mít povolený host 127.0.0.1.

Konfigurace prostředí (.env)#

Nastavení Panelu je v souboru /var/www/pterodactyl/.env. Vytvoříte ho z předlohy, nainstalujete knihovny a vygenerujete šifrovací klíč.

  1. Zkopírujte předlohu:

    bash
    cp .env.example .env
  2. Nainstalujte PHP knihovny Panelu:

    bash
    COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
    • COMPOSER_ALLOW_SUPERUSER=1 – povolí spuštění Composeru jako root bez dotazu.
    • composer install – stáhne knihovny přesně ve verzích, které určuje Panel (soubor composer.lock).
    • --no-dev – vynechá nástroje pro vývojáře, na produkčním serveru je nepotřebujete.
    • --optimize-autoloader – připraví rychlejší načítání tříd PHP.

    Instalace trvá jednotky minut a končí bez chybových hlášek (žluté varování o zastaralých balíčcích nevadí).

  3. Vygenerujte šifrovací klíč:

    bash
    php artisan key:generate --force
    • php artisan – nástroj Panelu pro správu z příkazové řádky.
    • key:generate – vytvoří náhodný klíč APP_KEY a zapíše ho do .env.
    • --force – provede příkaz bez potvrzení (Panel běží v produkčním režimu, kde se jinak ptá).

Zálohujte APP_KEY hned teď

Klíčem APP_KEY Panel šifruje citlivá data v databázi (například API klíče a hesla databázových hostitelů). Když ho ztratíte, data nerozšifrujete ani ze zálohy databáze. Příkaz key:generate spusťte jen při první instalaci. Na Panelu, který už má data, by nový klíč znamenal ztrátu přístupu k nim.

  1. Zobrazte klíč a uložte si celý řádek mimo server (do správce hesel nebo šifrovaného souboru v počítači):

    bash
    grep APP_KEY /var/www/pterodactyl/.env
    Výstuptext
    APP_KEY=base64:…

Průvodce p:environment:setup#

Základní nastavení provede průvodce. Spusťte ho:

bash
php artisan p:environment:setup

Postupně se zeptá na tyto věci (výchozí hodnota je v hranatých závorkách, potvrdíte ji klávesou Enter):

OtázkaCo zadatProč
E-mail autora (… Author Email)Váš e-mail, například [email protected]Uvádí se jako autor šablon her, které z Panelu exportujete. Musí to být platný tvar e-mailu, jinak průvodce skončí chybou.
Application URLhttps://panel.example.czAdresa Panelu včetně https://. Používá se v odkazech v e-mailech a při generování adres. Bez https:// budou odkazy vést špatně.
Application TimezoneEurope/PragueČasové pásmo pro zobrazení časů a pro plánované úlohy.
Cache DriverredisKam ukládat cache. Redis je nejrychlejší a doporučený.
Session DriverredisKam ukládat přihlášení uživatelů.
Queue DriverredisKam ukládat frontu úloh pro službu pteroq.
Enable UI based settings editor?yesČást nastavení (název Panelu, pošta, reCAPTCHA) půjde měnit v administraci, ne jen v .env.
Enable sending anonymous telemetry data?podle vásPanel jednou denně posílá autorům anonymní statistiky (počet serverů, verze systému). Nechcete-li, odpovězte no.
Redis Host127.0.0.1Redis běží na stejné VPS.
Redis Passwordnic, jen EnterLokální Redis po instalaci heslo nemá a naslouchá jen na 127.0.0.1.
Redis Port6379Výchozí port Redisu.

Když zadáte adresu začínající https://, průvodce sám zapne bezpečné cookies (SESSION_SECURE_COOKIE=true).

Průvodce p:environment:database#

bash
php artisan p:environment:database
OtázkaCo zadatProč
Database Host127.0.0.1Databáze běží na stejné VPS. Nezadávejte localhost (viz výše).
Database Port3306Výchozí port MariaDB.
Database NamepanelDatabáze z předchozí kapitoly.
Database UsernamepterodactylUživatel z předchozí kapitoly.
Database Passwordheslo <HESLO_DB_PANELU>Při psaní se nezobrazuje.

Průvodce se hned zkusí připojit. Když údaje nesedí, vypíše Unable to connect to the MySQL server…, nic neuloží a zeptá se, jestli to chcete zkusit znovu.

Průvodce p:environment:mail#

Panel posílá e-maily (pozvánky nových uživatelů, obnova hesla). Bez nastavené pošty Panel funguje, jen tyto e-maily neodejdou. Nastavení můžete udělat i později, stejným příkazem:

bash
php artisan p:environment:mail
OtázkaCo zadatProč
Which driver should be used for sending emails?smtpOdesílání přes SMTP server vašeho e-mailového poskytovatele je nejspolehlivější.
SMTP Hostadresa SMTP serveru, například smtp.example.czNajdete ji v nápovědě svého poskytovatele e-mailu.
SMTP Port587 (nebo 465)587 se používá se šifrováním TLS (STARTTLS), 465 se šifrováním SSL.
SMTP Usernamecelá e-mailová adresa schránkyPřihlašovací jméno ke schránce.
SMTP Passwordheslo ke schránceNěkteré služby vyžadují zvláštní „heslo pro aplikace“.
Encryption method to usetls pro port 587, ssl pro 465Musí odpovídat portu, jinak se spojení nenaváže.
Email address emails should originate fromnapříklad [email protected]Adresa odesílatele. Má patřit k doméně schránky, jinak zprávy skončí ve spamu.
Name that emails should appear fromnapříklad Herní panelJméno odesílatele v e-mailu.

Důležité klíče v .env#

Průvodci zapisují do .env tyto hodnoty. Soubor můžete upravit i ručně (nano /var/www/pterodactyl/.env); po ruční úpravě spusťte php artisan config:clear.

NastaveníCo děláDoporučená hodnotaKdy změnit
APP_URLVeřejná adresa Panelu.https://panel.example.czPři změně domény (a pak i v Nginx a certifikátu).
APP_KEYŠifrovací klíč dat v databázi.vygenerovaný, nikdy neměnitNikdy. Při obnově ze zálohy vraťte původní.
APP_TIMEZONEČasové pásmo Panelu.Europe/PragueKdyž jsou správci v jiném pásmu.
APP_ENVIRONMENT_ONLYtrue = nastavení jen v .env, false = i v administraci.falseKdyž chcete zakázat změny nastavení z webu.
DB_HOST, DB_PORTKde běží databáze Panelu.127.0.0.1, 3306Když databázi přesunete jinam.
DB_DATABASE, DB_USERNAME, DB_PASSWORDDatabáze a přihlašovací údaje Panelu.panel, pterodactyl, silné hesloPři změně hesla uživatele v MariaDB.
REDIS_HOST, REDIS_PASSWORD, REDIS_PORTPřipojení k Redisu.127.0.0.1, null, 6379Když Redisu nastavíte heslo.
CACHE_DRIVER, SESSION_DRIVER, QUEUE_CONNECTIONKam se ukládá cache, přihlášení a fronta.redisPrakticky nikdy.
SESSION_SECURE_COOKIECookies přihlášení se posílají jen přes HTTPS.trueNikdy, pokud Panel běží na HTTPS.
MAIL_*Odesílání e-mailů (server, port, šifrování, odesílatel).podle poskytovatelePři změně schránky.
MAIL_EHLO_DOMAINJméno, kterým se Panel představí SMTP serveru.panel.example.czKdyž vám e-maily odmítá například Gmail kvůli localhost.
TRUSTED_PROXIESAdresy proxy, kterým Panel věří (Cloudflare, další Nginx).nevyplněnoKdyž Panel běží za proxy, viz Panel za Cloudflare.
PTERODACTYL_TELEMETRY_ENABLEDOdesílání anonymní telemetrie.podle vásfalse vypne telemetrii.

Tabulky v databázi a první administrátor#

  1. Vytvořte tabulky a nahrajte výchozí data:

    bash
    php artisan migrate --seed --force
    • migrate – vytvoří v databázi panel všechny tabulky.
    • --seed – naplní je výchozími daty, mimo jiné šablonami her (Minecraft, Rust a další).
    • --force – spustí příkaz bez potvrzení v produkčním režimu.

    Příkaz může běžet i několik minut. Nepřerušujte ho, jinak zůstane databáze napůl vytvořená.

  2. Vytvořte administrátorský účet:

    bash
    php artisan p:user:make
OtázkaCo zadat
Is this user an administrator?yes – účet bude mít přístup do administrace.
Email AddressVáš e-mail; slouží k přihlášení a obnově hesla.
UsernamePřihlašovací jméno, například jan.
First Name, Last NameJméno a příjmení (zobrazuje se v Panelu).
PasswordAspoň 8 znaků, aspoň jedno velké písmeno a jedna číslice. Při psaní se nezobrazuje.

Na konci uvidíte tabulku s údaji účtu a řádkem Admin | Yes.

Oprávnění souborů#

Soubory Panelu teď patří uživateli root. Webový server běží jako uživatel www-data a musí do složek storage a bootstrap/cache zapisovat:

bash
chown -R www-data:www-data /var/www/pterodactyl/*
  • chown -R – změní vlastníka souborů i celého obsahu složek.
  • www-data:www-data – uživatel a skupina, pod kterými na Ubuntu a Debianu běží Nginx a PHP-FPM.

Po každém příkazu artisan jako root

Příkazy php artisan spouštěné jako root můžou vytvořit soubory (například logy), které pak www-data nesmí přepsat. Když po práci v terminálu uvidíte chybu 500, spusťte znovu příkaz chown výše.

Cron a fronta úloh#

Cron#

Cron spouští plánovač Panelu každou minutu (mazání starých přihlášení, plánované úlohy serverů).

  1. Otevřete crontab uživatele root:

    bash
    crontab -e

    Při prvním spuštění se zeptá na editor. Zvolte nano (napište jeho číslo a stiskněte Enter). Pokud systém hlásí crontab: command not found, cron chybí. Nainstalujte ho příkazem apt -y install cron a krok zopakujte.

  2. Na konec souboru vložte řádek:

    text
    * * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
  3. Uložte (Ctrl+O, Enter) a zavřete editor (Ctrl+X). Uvidíte crontab: installing new crontab.

Část řádkuVýznam
* * * * *Minuta, hodina, den v měsíci, měsíc, den v týdnu. Pět hvězdiček = každou minutu.
php /var/www/pterodactyl/artisan schedule:runSpustí plánovač Panelu; ten sám rozhodne, které úlohy je čas provést.
>> /dev/null 2>&1Zahodí výstup i chyby, aby cron neposílal e-maily každou minutu.

Služba fronty pteroq#

Fronta zpracovává práci na pozadí: odesílání e-mailů a úlohy, které si uživatelé naplánují u serverů (sekce Schedules, například noční restart nebo záloha). Bez ní e-maily neodcházejí a naplánované úlohy se neprovedou.

  1. Vytvořte soubor služby:

    bash
    nano /etc/systemd/system/pteroq.service
  2. Vložte obsah:

    /etc/systemd/system/pteroq.serviceini
    # Pterodactyl Queue Worker File
    [Unit]
    Description=Pterodactyl Queue Worker
    After=redis-server.service
    
    [Service]
    User=www-data
    Group=www-data
    Restart=always
    ExecStart=/usr/bin/php /var/www/pterodactyl/artisan queue:work --queue=high,standard,low --sleep=3 --tries=3
    StartLimitInterval=180
    StartLimitBurst=30
    RestartSec=5s
    
    [Install]
    WantedBy=multi-user.target
  3. Uložte a zavřete editor.

ŘádekCo dělá
Description=Popis služby, který uvidíte ve výpisu systemctl status.
After=redis-server.serviceSlužba se spustí až po Redisu, ze kterého čte frontu.
User=www-data, Group=www-dataFronta běží pod stejným uživatelem jako web, ať mají oba stejná práva k souborům.
Restart=alwaysKdyž proces skončí (chybou i normálně), systemd ho spustí znovu.
ExecStart=… queue:workSpustí zpracování fronty. --queue=high,standard,low určuje pořadí front podle priority, --sleep=3 = při prázdné frontě počkat 3 sekundy, --tries=3 = neúspěšnou úlohu zkusit nejvýš třikrát.
StartLimitInterval=180, StartLimitBurst=30Pokud služba spadne víc než 30× za 180 sekund, systemd ji přestane restartovat (ochrana před nekonečnou smyčkou).
RestartSec=5sPřed restartem počká 5 sekund.
WantedBy=multi-user.targetSlužba se spustí při každém startu VPS (po enable).
  1. Zapněte Redis i frontu po startu a hned je spusťte:

    bash
    systemctl enable --now redis-server
    systemctl enable --now pteroq.service
    • enable – zapne automatické spuštění po restartu VPS.
    • --now – zároveň službu hned spustí.
  2. Zkontrolujte stav:

    bash
    systemctl status pteroq

    Uvidíte Active: active (running). Výpis zavřete klávesou q.

Certifikát Let's Encrypt#

Konfigurace Nginx níže odkazuje na soubory certifikátu. Nginx s ní nenastartuje, dokud certifikát neexistuje, proto ho získáte jako první.

  1. Nainstalujte Certbot a jeho doplněk pro Nginx:

    bash
    apt -y install certbot python3-certbot-nginx
    • certbot – program, který získává a obnovuje certifikáty Let's Encrypt.
    • python3-certbot-nginx – doplněk, který ověří doménu přes běžící Nginx bez jeho vypnutí.
  2. Získejte certifikát. Za panel.example.cz dosaďte svou doménu:

    bash
    certbot certonly --nginx -d panel.example.cz
    • certonly – jen získá certifikát a uloží ho, konfiguraci Nginx neupravuje (tu napíšete sami).
    • --nginx – ověření domény proběhne přes Nginx na portu 80.
    • -d panel.example.cz – doména, pro kterou certifikát chcete.
  3. Při prvním spuštění odpovězte na otázky:

    • E-mail (Enter email address…) – zadejte svůj e-mail. Let's Encrypt na něj posílá důležitá oznámení o účtu. Upozornění na vypršení certifikátu od roku 2025 neposílá, obnovu proto hlídá automatika (viz krok 5).
    • Podmínky služby (Please read the Terms of Service… Do you agree?) – odpovězte Y, bez souhlasu certifikát nedostanete.
    • Sdílení e-mailu s EFF (Would you be willing… to share your email address with the Electronic Frontier Foundation…) – podle vás, na vydání certifikátu nemá vliv.

    Na konci uvidíte Successfully received certificate. a cesty k souborům:

    Výstuptext
    Certificate is saved at: /etc/letsencrypt/live/panel.example.cz/fullchain.pem
    Key is saved at:         /etc/letsencrypt/live/panel.example.cz/privkey.pem
  4. Nastavte, aby Nginx po každé obnově certifikátu načetl nový. Vytvořte takzvaný deploy hook (skript, který Certbot spustí po úspěšné obnově):

    bash
    cat > /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh <<'EOF'
    #!/bin/sh
    systemctl reload nginx
    EOF
    chmod 755 /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh
    • cat > … <<'EOF' … EOF – zapíše řádky mezi <<'EOF' a EOF do souboru.
    • systemctl reload nginx – načte novou konfiguraci a certifikáty bez přerušení spojení.
    • chmod 755 – udělá skript spustitelným; Certbot spouští jen spustitelné soubory ve složce renewal-hooks/deploy.
  5. Ověřte, že automatická obnova funguje. Balíček Certbotu na Ubuntu i Debianu obsahuje časovač, který obnovu zkouší dvakrát denně:

    bash
    systemctl list-timers | grep certbot
    certbot renew --dry-run
    • systemctl list-timers – vypíše naplánované časovače; mezi nimi má být certbot.timer.
    • certbot renew --dry-run – vyzkouší obnovu proti testovacímu serveru Let's Encrypt, skutečný certifikát nemění.

    Test skončí hláškou Congratulations, all simulated renewals succeeded.

Certifikát platí 90 dní (stav k říjnu 2026; Let's Encrypt platnost postupně zkracuje). Certbot ho obnovuje sám, když zbývá zhruba třetina platnosti.

Nginx#

  1. Vypněte výchozí web Nginxu:

    bash
    rm /etc/nginx/sites-enabled/default
    • Smaže jen odkaz v sites-enabled, samotný soubor v sites-available zůstane. Výchozí web by jinak obsluhoval port 80 místo Panelu.
  2. Vytvořte konfiguraci Panelu:

    bash
    nano /etc/nginx/sites-available/pterodactyl.conf
  3. Vložte obsah a všechny čtyři výskyty panel.example.cz nahraďte svou doménou:

    /etc/nginx/sites-available/pterodactyl.confnginx
    server {
        listen 80;
        listen [::]:80;
        server_name panel.example.cz;
        return 301 https://$server_name$request_uri;
    }
    
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name panel.example.cz;
        server_tokens off;
    
        root /var/www/pterodactyl/public;
        index index.php;
    
        access_log /var/log/nginx/pterodactyl.app-access.log;
        error_log  /var/log/nginx/pterodactyl.app-error.log error;
    
        # větší nahrávané soubory a delší běh skriptů
        client_max_body_size 100m;
        client_body_timeout 120s;
    
        sendfile off;
    
        ssl_certificate /etc/letsencrypt/live/panel.example.cz/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/panel.example.cz/privkey.pem;
        ssl_session_cache shared:SSL:10m;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
        ssl_prefer_server_ciphers on;
    
        add_header X-Content-Type-Options nosniff;
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Robots-Tag none;
        add_header Content-Security-Policy "frame-ancestors 'self'";
        add_header X-Frame-Options DENY;
        add_header Referrer-Policy same-origin;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/run/php/php8.3-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param PHP_VALUE "upload_max_filesize = 100M \n post_max_size=100M";
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param HTTP_PROXY "";
            fastcgi_intercept_errors off;
            fastcgi_buffer_size 16k;
            fastcgi_buffers 4 16k;
            fastcgi_connect_timeout 300;
            fastcgi_send_timeout 300;
            fastcgi_read_timeout 300;
        }
    
        location ~ /\.ht {
            deny all;
        }
    }

Konfigurace vychází z oficiální dokumentace Pterodactylu. Doplnili jsme naslouchání na IPv6 (listen [::]:…) a skrytí verze Nginxu. Co jednotlivé části dělají:

DirektivaCo děláKdy změnit
server_tokens off;Nginx neprozradí svou verzi v hlavičkách a chybových stránkách Panelu. Na Debianu 13 je to už výchozí nastavení v /etc/nginx/nginx.conf, na Ubuntu 24.04 ne.Nikdy.
první blok server s listen 80Přijme požadavky přes HTTP a trvale (301) je přesměruje na HTTPS.Nikdy.
listen 443 ssl http2;Naslouchá na portu 443 s TLS a HTTP/2. [::] je totéž pro IPv6.Řádky s [::] smažte, pokud VPS nemá IPv6.
server_nameDoména, pro kterou blok platí.Při změně domény.
root /var/www/pterodactyl/public;Složka, ze které se servírují soubory. Jen public, ostatní soubory Panelu (včetně .env) nejsou z webu dostupné.Nikdy.
index index.php;Který soubor použít, když adresa končí /.Nikdy.
access_log, error_logKam se zapisuje přístupový a chybový log.Nikdy.
client_max_body_size 100m;Největší povolený nahrávaný soubor (například přes správce souborů v Panelu).Když potřebujete nahrávat větší soubory; změňte i upload_max_filesize a post_max_size níže.
client_body_timeout 120s;Jak dlouho Nginx čeká na další data od prohlížeče při nahrávání. Pomalé nahrávání velkého souboru se tak nepřeruší.Při nahrávání přes velmi pomalé připojení.
sendfile off;Vypne posílání souborů přímo jádrem systému. Převzato z oficiální konfigurace Pterodactylu.Nikdy.
ssl_certificate, ssl_certificate_keyCesta k certifikátu a soukromému klíči od Certbotu.Při změně domény.
ssl_session_cache shared:SSL:10m;Paměť (10 MB) pro uložené relace TLS. Opakované připojení prohlížeče se tak naváže rychleji.Nikdy.
ssl_protocols TLSv1.2 TLSv1.3;Povolené verze TLS; starší a nebezpečné jsou vypnuté.Nikdy.
ssl_ciphers, ssl_prefer_server_ciphersPovolené šifry a jejich pořadí.Nikdy.
add_header …Bezpečnostní hlavičky: zákaz vkládání Panelu do cizích stránek, zákaz indexace vyhledávači a podobně.Nikdy.
location / + try_filesExistující soubor pošle rovnou, vše ostatní předá index.php (aplikaci).Nikdy.
location ~ \.php$Pravidla pro všechny požadavky na soubory .php.Nikdy.
fastcgi_pass unix:/run/php/php8.3-fpm.sock;Kudy Nginx předává PHP požadavky PHP-FPM.Při přechodu na jinou verzi PHP.
fastcgi_split_path_info, fastcgi_index, include fastcgi_params, fastcgi_param SCRIPT_FILENAMEStandardní předání požadavku PHP: rozdělí adresu na skript a zbytek cesty, určí výchozí skript a předá PHP proměnné požadavku včetně cesty ke spouštěnému souboru.Nikdy.
fastcgi_intercept_errors off;Chybové stránky posílá přímo Panel, Nginx je nenahrazuje vlastními.Nikdy.
fastcgi_buffer_size, fastcgi_buffersVelikost paměti, do které Nginx ukládá odpověď z PHP.Nikdy.
fastcgi_param PHP_VALUE …Zvýší limity PHP pro nahrávání na 100 MB.Společně s client_max_body_size.
fastcgi_param HTTP_PROXY "";Ochrana proti útoku „httpoxy“.Nikdy.
fastcgi_*_timeout 300Jak dlouho Nginx čeká na PHP (pomalé operace).Nikdy.
location ~ /\.ht + deny allZakáže přístup ke skrytým souborům .ht….Nikdy.

Varování o http2 na Debianu 13

Debian 13 má Nginx 1.26, ve kterém je zápis listen … http2 označený jako zastaralý. Test konfigurace vypíše varování the "listen ... http2" directive is deprecated. Funkčnost to neovlivní. Pokud vám varování vadí, na Debianu 13 smažte z obou řádků listen 443… slovo http2 a pod ně přidejte řádek http2 on;. Na Ubuntu 24.04 (Nginx 1.24) direktiva http2 on; neexistuje, tam ponechte zápis z ukázky.

  1. Zapněte konfiguraci, otestujte ji a restartujte Nginx:

    bash
    ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.conf
    nginx -t
    systemctl restart nginx
    • ln -s – vytvoří v sites-enabled odkaz na soubor; Nginx načítá jen konfigurace v sites-enabled.
    • nginx -t – zkontroluje syntaxi. Musí skončit řádkem test is successful. Pokud ne, Nginx nerestartujte a opravte řádek, který chyba uvádí.
    • systemctl restart nginx – načte novou konfiguraci.

První přihlášení#

  1. V prohlížeči otevřete https://panel.example.cz. Uvidíte přihlašovací stránku Panelu se zámkem (platný certifikát) v adresním řádku.
  2. Přihlaste se jménem nebo e-mailem a heslem administrátora.
  3. Vpravo nahoře klikněte na ikonu ozubeného kola (administrace). V sekci Settings nastavte název Panelu (Company Name).
  4. Zapněte si dvoufázové ověření: klikněte na svůj účet vpravo nahoře, otevřete Account a v části dvoufázového ověření naskenujte QR kód aplikací (například Google Authenticator nebo Aegis). Účet administrátora ovládá všechny servery, proto ho chraňte víc než heslem.

Ověření#

Zkontrolujte celou instalaci:

bash
systemctl is-active nginx php8.3-fpm mariadb redis-server pteroq
curl -sI https://panel.example.cz | head -n 1
  • První příkaz musí vypsat pětkrát active.
  • curl -sI stáhne jen hlavičky odpovědi; první řádek bude HTTP/2 302 (přesměrování na přihlášení) nebo HTTP/2 200.

Panel je hotový. Další krok je přidat nod se službou Wings, na kterém poběží herní servery: Pterodactyl Wings.

Panel za Cloudflare#

Panel můžete schovat za proxy Cloudflare (oranžový mráček). Platí to jen pro Panel, ne pro Wings (viz Pterodactyl Wings).

Nod se stejnou doménou jako Panel

Pokud jste v návodu k Wings zadali jako FQDN nodu doménu Panelu (panel.example.cz), Panel přes proxy Cloudflare nepouštějte. Prohlížeče by se k Wings na portu 8080 nepřipojily a nefungovala by konzole ani soubory serverů. Buď nechte doménu Panelu na DNS only, nebo dejte nodu samostatnou subdoménu (například node.example.cz) s šedým mráčkem a vlastním certifikátem.

  1. V Cloudflare nastavte režim SSL/TLS na Full (strict). Cloudflare se pak k VPS připojuje přes HTTPS a ověřuje váš certifikát Let's Encrypt.

  2. Přepněte záznam panel.example.cz na Proxied.

  3. Do .env doplňte na jeden řádek rozsahy IP adres Cloudflare. Za proxy se k Panelu všechny požadavky připojují z adres Cloudflare. Panel pak skutečnou IP adresu návštěvníka převezme z hlavičky X-Forwarded-For, ale jen od adres, kterým věří. Bez tohoto řádku by Panel u všech uživatelů viděl jen adresy Cloudflare, a to v záznamech aktivit i v ochraně proti zkoušení hesel, která počítá pokusy podle IP adresy. Seznam níže odpovídá stavu k 1. 10. 2026, aktuální najdete na stránce cloudflare.com/ips (otevře se v novém okně):

    /var/www/pterodactyl/.envini
    TRUSTED_PROXIES=173.245.48.0/20,103.21.244.0/22,103.22.200.0/22,103.31.4.0/22,141.101.64.0/18,108.162.192.0/18,190.93.240.0/20,188.114.96.0/20,197.234.240.0/22,198.41.128.0/17,162.158.0.0/15,104.16.0.0/13,104.24.0.0/14,172.64.0.0/13,131.0.72.0/22,2400:cb00::/32,2606:4700::/32,2803:f800::/32,2405:b500::/32,2405:8100::/32,2a06:98c0::/29,2c0f:f248::/32
    • TRUSTED_PROXIES – seznam adres a rozsahů (oddělených čárkou bez mezer), od kterých Panel přijme hlavičky X-Forwarded-* se skutečnou IP adresou návštěvníka a protokolem. Od jiných adres tyto hlavičky ignoruje, takže si je nikdo nemůže podvrhnout.
  4. Načtěte novou konfiguraci: cd /var/www/pterodactyl && php artisan config:clear.

Nepoužívejte režim Flexible

V režimu Flexible jde provoz mezi Cloudflare a VPS nešifrovaně přes HTTP, ale Nginx ho přesměruje na HTTPS. Výsledkem je nekonečné přesměrování (ERR_TOO_MANY_REDIRECTS). Použijte Full (strict).

Aktualizace Panelu#

Nové verze Panelu opravují chyby i bezpečnostní díry, aktualizujte proto pravidelně. Před aktualizací si přečtěte poznámky k vydání na GitHubu a zkontrolujte, jakou verzi PHP nová verze vyžaduje (php -v).

Nejdřív záloha

Před aktualizací zazálohujte databázi a soubor .env:

bash
mariadb-dump --single-transaction panel > /root/panel-$(date +%F).sql
cp /var/www/pterodactyl/.env /root/pterodactyl-env-$(date +%F).bak
  • mariadb-dump --single-transaction panel – vyexportuje databázi panel do SQL souboru bez zamykání tabulek.
  • $(date +%F) – vloží dnešní datum (například 2026-10-01) do názvu souboru.

Pak proveďte aktualizaci:

bash
cd /var/www/pterodactyl
php artisan down
curl -L https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz | tar -xzv
chmod -R 755 storage/* bootstrap/cache
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
php artisan view:clear
php artisan config:clear
php artisan migrate --seed --force
chown -R www-data:www-data /var/www/pterodactyl/*
php artisan queue:restart
php artisan up
PříkazCo dělá
php artisan downZapne režim údržby; uživatelé uvidí stránku údržby místo chyb během aktualizace.
curl -L … | tar -xzvStáhne nejnovější vydání a rovnou ho rozbalí přes stávající soubory. .env se nepřepíše, v archivu není.
chmod -R 755 …Obnoví práva složek pro zápis.
composer install …Nainstaluje knihovny pro novou verzi.
view:clear, config:clearSmaže zkompilované šablony a cache konfigurace, aby se načetly nové.
migrate --seed --forceUpraví tabulky pro novou verzi a aktualizuje výchozí šablony her. Vlastní úpravy výchozích šablon se přepíšou; pokud nějakou šablonu měníte, vytvořte si její kopii.
chown -R www-data:www-data …Vrátí vlastnictví souborů webovému serveru.
queue:restartŘekne službě pteroq, ať po dokončení aktuální úlohy načte nový kód.
php artisan upVypne režim údržby.

Po aktualizaci Panelu aktualizujte i Wings, postup je v návodu Pterodactyl Wings. Verze Panelu a Wings mají jít ruku v ruce, používejte nejnovější vydání obou.

Zálohy Panelu#

Pro obnovu Panelu potřebujete dvě věci: databázi panel a soubor .env (hlavně APP_KEY). Data herních serverů leží na nodu s Wings, ne v Panelu, zálohujte je zvlášť. Jak zálohy automatizovat a dostat mimo server, popisuje návod Zálohy na VPS.

Když něco nefunguje#

502 Bad Gateway#

Nginx se nedostal k PHP-FPM. Zkontrolujte, že PHP-FPM běží a že cesta k socketu sedí:

bash
systemctl status php8.3-fpm
ls /run/php/

Ve výpisu ls musí být php8.3-fpm.sock a stejná cesta musí být v direktivě fastcgi_pass. Pokud služba neběží, spusťte ji: systemctl enable --now php8.3-fpm.

Chyba 500 nebo prázdná stránka#

Podívejte se do logu Panelu:

bash
tail -n 100 /var/www/pterodactyl/storage/logs/laravel-$(date +%F).log
  • tail -n 100 – vypíše posledních 100 řádků logu z dnešního dne.

Hledejte řádek s datem a slovem ERROR. Nejčastější příčiny:

  • Permission denied – špatný vlastník souborů. Spusťte znovu chown -R www-data:www-data /var/www/pterodactyl/*.
  • No application encryption key has been specified. – chybí APP_KEY. Při první instalaci spusťte php artisan key:generate --force. Pokud Panel už data má, vraťte původní klíč ze zálohy.
  • SQLSTATE[HY000] [1045] Access denied – nesedí heslo nebo uživatel databáze v .env.

The MAC is invalid#

Databáze byla zašifrovaná jiným APP_KEY, než je teď v .env. Typicky po obnově databáze na novou instalaci. Jediná oprava je vrátit do .env původní APP_KEY. Bez něj se šifrovaná data obnovit nedají.

E-maily nechodí#

Nejčastěji neběží fronta. Zkontrolujte službu a její log:

bash
systemctl status pteroq
journalctl -u pteroq -n 50
  • journalctl -u pteroq -n 50 – posledních 50 řádků logu služby.

Ověřte také, že běží Redis (systemctl status redis-server). Po opravě spusťte systemctl restart pteroq. Pokud fronta běží, zkontrolujte nastavení pošty (php artisan p:environment:mail) a chyby v logu Panelu (kapitola Chyba 500).

Server visí na instalaci#

Instalaci serveru provádí Wings, ne Panel. Postup je v návodu Pterodactyl Wings v části „Když něco nefunguje“ (nejčastěji nefunkční DNS v kontejnerech nebo nedostupný nod).

Naplánované úlohy serverů se nespouštějí#

Zkontrolujte, že běží fronta (systemctl status pteroq), řádek v cronu (crontab -l) a časová pásma: systém (timedatectl), Panel (APP_TIMEZONE v .env). Pomůže i vymazání cache plánovače:

bash
php /var/www/pterodactyl/artisan schedule:clear-cache
systemctl restart pteroq

Nginx nenastartuje: cannot load certificate#

Certifikát pro doménu v konfiguraci neexistuje: nezískali jste ho, nebo se doména v server_name a v cestě /etc/letsencrypt/live/… liší od té, pro kterou byl vydán. Seznam certifikátů vypíše certbot certificates.

Certbot: Timeout during connect (likely firewall problem)#

Let's Encrypt se nedostal na port 80 vaší VPS. Zkontrolujte, že A záznam domény ukazuje na IPv4 adresu VPS, že je port 80 povolený ve firewallu zákaznické zóny i v UFW a že Nginx běží. Pokud má doména záznam AAAA, musí ukazovat na IPv6 adresu této VPS, Let's Encrypt zkouší i IPv6.

Composer nebo artisan hlásí špatnou verzi PHP#

Hláška obsahuje například requires php ^8.2 || ^8.3 but your php version (8.4…) does not satisfy that requirement. Příkaz php spouští jinou verzi než 8.3, typicky na Debianu 13 po instalaci výchozího balíčku php. Nastavte výchozí PHP na 8.3:

bash
update-alternatives --set php /usr/bin/php8.3
php -v
  • update-alternatives --set php … – určí, kterou verzi spouští příkaz php.

Pokud /usr/bin/php8.3 neexistuje, PHP 8.3 není nainstalované. Vraťte se ke kapitole Instalace závislostí.

Stránka se za Cloudflare točí v přesměrování (ERR_TOO_MANY_REDIRECTS)#

V Cloudflare je režim Flexible. Přepněte ho na Full (strict) a zkontrolujte i TRUSTED_PROXIES podle Panel za Cloudflare.

Za Cloudflare nefunguje konzole serverů#

Doména nodu jde přes proxy Cloudflare (oranžový mráček). Typicky když nod používá stejnou doménu jako Panel. Přepněte doménu nodu na DNS only, nebo nodu dejte samostatnou subdoménu.

Shrnutí

  • Panel běží na Nginx + PHP 8.3 (na Debianu 13 z repozitáře packages.sury.org), MariaDB a Redisu.
  • Databázový uživatel Panelu má host 127.0.0.1 a práva jen k databázi panel.
  • APP_KEY z .env máte uložený mimo server, bez něj nejde obnovit šifrovaná data.
  • Cron spouští schedule:run každou minutu, služba pteroq zpracovává frontu.
  • Certifikát se obnovuje sám a Nginx ho po obnově načte díky deploy hooku.
  • Další krok: Pterodactyl Wings a databázový host pro servery.

Byl návod užitečný?

Platí pro

  • Ubuntu 24.04
  • Debian 13
  • Pterodactyl Panel 1.x

Služby

Nahlásit chybu v návodu

Hledání v návodech