GuiderUtveckling och driftSpelpanelen Pterodactyl

Kör spelservrar med Pterodactyl

Pterodactyl på Debian 13, en gratis panel för spelservrar som Minecraft, var och en i sin egen Docker-container, med panelen och Wings på samma server, gratis certifikat, IPv6 för spelarna och säkerhetskopior du kan återställa.

Testad på Pterodactyl Panel 1.15.1 och Wings 1.13.3 med Caddy 2.6.2 eller nginx 1.26.3 och Docker 29.8.1 på Debian 13 (trixie) på en server hos Melonslab Uppdaterad 27 september 2026

Rekommenderad server för guiden

VC-S Micro · 2 vCPU · 8 GB Minne · 250 GB Lagring

Månadsvis, ingen bindningstid 7 dagars öppet köp

90 kr/mån

Beställ nu
På den här sidan

Det här sätter du upp

Pterodactyl är en panel för spelservrar. Du skapar en server i webbläsaren, väljer ett spel som Minecraft, och Pterodactyl installerar och kör det i en egen Docker-container, med gränser för minne, processor och disk. Du, och de spelare du ger tillgång, får en konsol, en filhanterare, scheman och säkerhetskopior för varje server.

Pterodactyl består av två delar. Panelen är webbplatsen, en PHP-app med en MariaDB-databas. Wings körs på varje maskin som har spelservrar och startar containrarna. I den här guiden ligger båda på samma server. Wings går inte att köra med Podman utan root: den styr Dockers root-tjänst direkt, skapar en container för varje spelserver och byter ägare på deras filer, så den körs som root och behöver en egen server. Pelican är en nyare fork av Pterodactyl, om du vill jämföra.

Varje steg nedan har körts på en nyinstallerad VC-P Alloy (2 vCPU, 8 GB) hos Melonslab med Debian 13:

  • Pterodactyls dokumentation anger Debian 13 som stödd. Panelen kördes på Debians egna PHP 8.4, MariaDB 11.8 och Redis 8.0, utan de extra paketförråd som dokumentationen lägger till. Steg 1 visar vad mer som justerades.
  • Administratören skapades på kommandoraden. Båda webbservrarna testades på samma server: Caddy, och före den nginx med Certbot. Båda fick certifikat från Let's Encrypt för panelen och för Wings och omdirigerade HTTP till HTTPS. Med Caddy startade Wings om av sig själv när dess certifikat byttes ut. Med Certbot gick en testförnyelse igenom.
  • Panelen loggade varje besökares riktiga adress.
  • En plats, en nod och allokeringar skapades, och en Minecraft-server från standardägget Paper var installerad och igång inom en minut. En statusförfrågan utifrån nådde den över IPv4. Över IPv6 svarade den från själva servern, eftersom vår testdator saknar IPv6.
  • Konsolen fungerade, och en säkerhetskopia av spelservern togs och återställdes med båda. Filhanteraren och SFTP testades med Caddy, även efter en omstart av servern.
  • Från internet var bara SSH, webbplatsen, Wings portar 8080 och 2022 och spelporten öppna. Databasen och Redis var det inte.
  • Panelen och Wings uppdaterades, och allt startade igen av sig självt efter en omstart av servern, även spelservern.

Med en Minecraft-server utan spelare använde hela servern omkring 1,5 GB minne med Caddy och 1,6 GB med nginx, varav Minecraft-servern omkring 820 MB.

Innan du börjar

Du behöver:

  • en nyinstallerad server hos Melonslab med Debian 13 och inget annat installerat. Varje spelserver behöver eget minne utöver panelen, så välj storlek efter de spel du vill köra;
  • två namn med A- och AAAA-poster som pekar på servern: ett för panelen, till exempel panel.example.com, och ett för Wings, till exempel wings.example.com.

Sätt upp SSH-nycklar och automatiska säkerhetsuppdateringar enligt steg 1 till 3 i säkerhetsguiden, och hoppa över steg 4: steg 10 här sätter upp brandväggen med de portar Pterodactyl behöver.

Exemplen använder panel.example.com och wings.example.com, och 203.0.113.10 och 2001:db8::10 som serverns adresser. Byt genomgående ut dem mot dina egna.

Panelen behöver en webbserver, och den här guiden tar upp två. Caddy hämtar och förnyar certifikat av sig själv. nginx med Certbot är det Pterodactyls dokumentation visar först. Välj en, så följer stegen nedan den:

Webbserver

1. Installera det panelen behöver

Panelen behöver PHP, en webbserver, MariaDB och Redis. Pterodactyls guide för Debian lägger till ett paketförråd för PHP 8.3, och på äldre Debianversioner även för MariaDB och Redis. Debian 13 har tillräckligt nya versioner av allihop. Som root:

Med Caddy

apt update
apt install -y php8.4 php8.4-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} mariadb-server caddy tar unzip git redis-server curl composer

Med nginx

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

Det här installerar PHP 8.4, som Pterodactyls dokumentation inte nämner. Panelens egna krav tillåter det, och inget steg nedan visade något fel eller någon varning med det. De andra ändringarna jämfört med dokumentationen, för Debian 13 och för den här installationen, är:

  • den schemalagda uppgiften i steg 4 körs som webbserverns användare, inte som root;
  • .env, som innehåller databasens lösenord och krypteringsnyckeln, går bara att läsa för webbserverns PHP efter steg 3;
  • Composer kommer från Debians paket i stället för från sitt eget installationsprogram.

Med Caddy

Webbservern är Caddy från Debians eget paket, med Pterodactyls egen Caddy-konfiguration pekad mot PHP 8.4 i steg 5.

Med nginx

nginx-konfigurationen i steg 5 är Pterodactyls egen, pekad mot PHP 8.4, och lyssnar också på IPv6.

2. Ladda ner panelen och skapa dess databas

mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
tar -xzvf panel.tar.gz
chmod -R 755 storage/* bootstrap/cache/

Öppna databasens skal med mariadb, och skapa en användare och en databas för panelen, med ett eget lösenord:

CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'Choose-a-long-password';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
exit

Installera sedan panelens PHP-bibliotek och skapa dess krypteringsnyckel:

cp .env.example .env
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
php artisan key:generate --force

Nyckeln är raden som börjar med APP_KEY= i /var/www/pterodactyl/.env. Panelen krypterar hemligheter som API-nycklar med den, och en säkerhetskopia av databasen går inte att läsa utan den. Spara en kopia av raden utanför servern och förvara den säkert, till exempel i en lösenordshanterare.

3. Konfigurera panelen och skapa administratören

php artisan p:environment:setup

Kommandot ställer några frågor. Svara så här:

FrågaSvar
Egg Author Emaildin e-postadress
Application URLhttps://panel.example.com
Application Timezonedin tidszon, till exempel Europe/Stockholm
Cache Driver, Session Driver och Queue Driverredis för alla tre
Enable UI based settings editor?yes
Enable sending anonymous telemetry data?no, eller yes om du vill hjälpa till

Behåll standardvärdena för frågorna om Redis. Telemetrin är anonym: en gång om dagen skickar den ett slumpat id, versionerna av panelen, PHP, databasen och Docker, och antalet servrar, användare och säkerhetskopior till telemetry.pterodactyl.io, utan namn, e-postadresser eller IP-adresser i uppgifterna.

Anslut sedan panelen till databasen. Behåll standardvärdena och ange lösenordet från steg 2:

php artisan p:environment:database

Skapa tabellerna och läs in standardäggen, mallarna för varje spel:

php artisan migrate --seed --force

Pterodactyl har ingen registreringssida för den första administratören, så ingen annan kan ta över panelen före dig. Skapa din administratör på kommandoraden:

php artisan p:user:make

Svara yes på Is this user an administrator?, och ange sedan en e-postadress, ett användarnamn, för- och efternamn och ett lösenord med minst 8 tecken, en stor bokstav och en siffra.

Ge till sist filerna till webbservern, och skydda .env mot andra användare på servern:

chown -R www-data:www-data /var/www/pterodactyl/*
chown www-data:www-data /var/www/pterodactyl/.env
chmod 600 /var/www/pterodactyl/.env

Panelen skickar e-post för nya lösenord och nya användare. Det satte vi inte upp för den här guiden. Har du en SMTP-server frågar php artisan p:environment:mail efter dess uppgifter. Fram till dess visar panelens logg ett fel varje gång den försöker skicka.

4. Starta bakgrundsjobben

Panelen kör schemalagda uppgifter varje minut och en kö för arbete i bakgrunden. Lägg den schemalagda uppgiften i webbserverns crontab, så att filerna den skapar tillhör webbservern:

echo "* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1" | crontab -u www-data -

Skapa /etc/systemd/system/pteroq.service för kön:

[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

Starta den sedan:

systemctl enable --now redis-server pteroq.service

5. Skaffa certifikat och sätt upp webbservern

Med Caddy

Caddy tar emot besökarna till panelen, hämtar dess certifikat från Let's Encrypt, förnyar det och omdirigerar HTTP till HTTPS, helt av sig själv. Den hämtar också certifikatet för Wings namn, som steg 8 pekar Wings mot. Debians Caddy är version 2.6.2, som är äldre än Caddys egna versioner men förstår varje rad i Pterodactyls konfiguration, och den får säkerhetsuppdateringar från Debian.

Ersätt /etc/caddy/Caddyfile med det här. Det är Pterodactyls egen Caddy-konfiguration med PHP 8.4, och ett andra block i slutet som bara finns för att hämta certifikatet för wings.example.com:

{
    servers :443 {
        timeouts {
            read_body 120s
        }
    }
}

panel.example.com {
    root * /var/www/pterodactyl/public

    file_server

    php_fastcgi unix//run/php/php8.4-fpm.sock {
        root /var/www/pterodactyl/public
        index index.php

        env PHP_VALUE "upload_max_filesize = 100M
        post_max_size = 100M"
        env HTTP_PROXY ""
        env HTTPS "on"

        read_timeout 300s
        dial_timeout 300s
        write_timeout 300s
    }

    header Strict-Transport-Security "max-age=16768000; preload;"
    header X-Content-Type-Options "nosniff"
    header X-XSS-Protection "1; mode=block;"
    header X-Robots-Tag "none"
    header Content-Security-Policy "frame-ancestors 'self'"
    header X-Frame-Options "DENY"
    header Referrer-Policy "same-origin"

    request_body {
        max_size 100m
    }

    respond /.ht* 403

    log {
        output file /var/log/caddy/pterodactyl.log {
            roll_size 100MiB
            roll_keep_for 7d
        }
        level INFO
    }
}

wings.example.com {
    respond 404
}

Starta sedan om Caddy:

systemctl restart caddy

Inom en minut svarar https://panel.example.com med ett certifikat, över IPv4 och IPv6. Headern Strict-Transport-Security säger åt webbläsare att bara använda HTTPS för panelens namn det närmaste halvåret.

Caddy pratar direkt med PHP, inte som en proxy framför en annan webbserver, så panelen ser varje besökares riktiga adress utan någon inställning för betrodda proxyer. Debians Caddy-paket lägger till användaren caddy i gruppen www-data, så att den når PHP. Det är också därför bara ägaren kan läsa .env.

Med nginx

Panelen och Wings behöver var sitt certifikat för sitt eget namn. Wings startas om när dess certifikat förnyas, vilket inte stoppar spelservrarna:

apt install -y certbot python3-certbot-nginx
certbot certonly --nginx -d panel.example.com
certbot certonly --nginx -d wings.example.com --deploy-hook "systemctl restart wings"

Certbot frågar efter en e-postadress för påminnelser om certifikat som går ut, och ber dig godkänna villkoren hos Let's Encrypt. Debians certbot förnyar certifikaten själv. Med certbot renew --dry-run testar du det.

Ta bort nginx standardsajt:

rm /etc/nginx/sites-enabled/default

Skapa /etc/nginx/sites-available/pterodactyl.conf. Det är Pterodactyls egen konfiguration, med IPv6 och PHP 8.4:

server {
    listen 80;
    listen [::]:80;
    server_name panel.example.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    http2 on;
    server_name panel.example.com;

    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;

    # allow larger file uploads and longer script runtimes
    client_max_body_size 100m;
    client_body_timeout 120s;

    sendfile off;

    ssl_certificate /etc/letsencrypt/live/panel.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/panel.example.com/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.4-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;
        include /etc/nginx/fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

Aktivera den:

ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.conf
nginx -t
systemctl restart nginx

nginx skickar förfrågningarna direkt till PHP, så panelen ser varje besökares riktiga adress utan någon inställning för betrodda proxyer.

6. Logga in och stäng av reCAPTCHA

Öppna https://panel.example.com och logga in med administratören från steg 3. Kugghjulet uppe till höger öppnar administrationen, på https://panel.example.com/admin.

Från början använder inloggningssidan Googles reCAPTCHA, med nycklar som följer med varje installation av Pterodactyl, så varje besökares webbläsare hämtar den från Google. Inloggningen är begränsad även utan den: efter några misslyckade försök spärras den en stund. Stäng av den genom att öppna Settings och sedan Advanced, ställa in Status under reCAPTCHA på Disabled och välja Save. Vill du behålla den skapar du egna nycklar hos Google och anger dem där.

Under Settings och General kan du ställa in Require 2-Factor Authentication på Admin Only eller All Users.

7. Installera Docker och Wings

Installera Docker med Dockers eget skript, som Pterodactyls dokumentation gör. Det ställer in Docker att starta vid uppstart:

curl -sSL https://get.docker.com/ | CHANNEL=stable bash

Ladda sedan ner Wings:

mkdir -p /etc/pterodactyl
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")"
chmod u+x /usr/local/bin/wings

Skapa /etc/systemd/system/wings.service:

[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
Requires=docker.service
PartOf=docker.service

[Service]
User=root
WorkingDirectory=/etc/pterodactyl
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/local/bin/wings
Restart=on-failure
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s

[Install]
WantedBy=multi-user.target

Starta den inte än. Den behöver först sin konfiguration från panelen.

8. Skapa en plats och en nod

En nod är en maskin som kör Wings, och varje nod hör till en plats. Gör så här i administrationen:

  • Öppna Locations och välj Create New. Ange en Short Code, till exempel se-sto, och en Description, till exempel Stockholm, och välj Create.
  • Öppna Nodes och välj Create New. Ange ett Name, välj Location och ange wings.example.com som FQDN. Behåll Use SSL Connection och Not Behind Proxy.
  • Ange under Configuration hur mycket minne och disk spelservrarna får använda totalt, i MiB, till exempel 6144 för Total Memory och 30720 för Total Disk Space, och 0 för båda överallokeringarna. Lämna lite minne åt panelen. Behåll Daemon Port 8080 och Daemon SFTP Port 2022, och välj Create Node.

Öppna nodens flik Configuration och välj Generate Token. Panelen visar ett kommando som börjar med cd /etc/pterodactyl && sudo wings configure. Kör det på servern. Som root kan du ta bort sudo. Det skriver /etc/pterodactyl/config.yml och avslutas med Successfully configured wings.

Med Caddy

Filen räknar med att certifikatet ligger där Certbot skulle lägga det, under /etc/letsencrypt. Peka den i stället mot Caddys certifikat för wings.example.com. Wings körs som root och kan därför läsa Caddys filer:

C=/var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wings.example.com
sed -i "s#cert: /etc/letsencrypt/live/wings.example.com/fullchain.pem#cert: $C/wings.example.com.crt#; s#key: /etc/letsencrypt/live/wings.example.com/privkey.pem#key: $C/wings.example.com.key#" /etc/pterodactyl/config.yml
grep -A4 "ssl:" /etc/pterodactyl/config.yml

Det sista kommandot visar de två nya sökvägarna under cert: och key:. Wings behåller dem när du senare ändrar noden i panelen.

Wings läser certifikatet bara när den startar, och Caddy förnyar det ungefär en månad innan det går ut. Låt därför systemd starta om Wings varje gång Caddy skriver ett nytt. Skapa /etc/systemd/system/wings-cert.path:

[Unit]
Description=Restart Wings when Caddy renews its certificate

[Path]
PathChanged=/var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wings.example.com/wings.example.com.crt

[Install]
WantedBy=multi-user.target

Och /etc/systemd/system/wings-cert.service, som väntar tio sekunder så att Caddy hinner skriva nyckeln också:

[Unit]
Description=Restart Wings for a renewed certificate

[Service]
ExecStartPre=/bin/sleep 10
Type=oneshot
ExecStart=/usr/bin/systemctl restart wings.service

En omstart av Wings stoppar inte spelservrarna. Starta sedan Wings och bevakningen:

systemctl daemon-reload
systemctl enable --now wings wings-cert.path

Med nginx

Filen pekar redan Wings mot certifikatet för wings.example.com från steg 5. Certbot förnyar det och startar om Wings med kommandot efter --deploy-hook från steg 5. Starta Wings:

systemctl enable --now wings

En omstart av Wings stoppar inte spelservrarna.

Token är en API-nyckel med åtkomst till dina noder, och kommandot skriver också ut den i sin helhet. Wings behöver den inte när den väl är konfigurerad, så ta bort den: öppna Application API och ta bort nyckeln med anteckningen Automatically generated node deployment key.

9. Lägg till allokeringar

En allokering är en adress och en port som en spelserver kan använda. Öppna nodens flik Allocation. Under Assign New Allocations:

  • Ange 0.0.0.0 som IP Address, 25565 i Ports och ett namn som pekar på servern som IP Alias, till exempel wings.example.com, och välj Submit. Aliaset är adressen spelarna ser i panelen.
  • Lägg till samma port igen med :: som IP Address, för IPv6.

0.0.0.0 tar emot spelare på alla serverns IPv4-adresser och :: på alla dess IPv6-adresser. Ports tar också ett intervall, till exempel 25565-25570, för fler servrar.

10. Öppna brandväggen

Wings API på port 8080 är det din webbläsare ansluter till för konsolen, och port 2022 är dess SFTP-server för spelservrarnas filer. Båda måste gå att nå, liksom SSH och webbplatsen.

Med Caddy

Caddy svarar också på UDP-port 443 för HTTP/3:

apt install -y ufw
ufw allow 22/tcp
ufw allow 80,443/tcp
ufw allow 443/udp
ufw allow 8080,2022/tcp
ufw enable

Med nginx

apt install -y ufw
ufw allow 22/tcp
ufw allow 80,443/tcp
ufw allow 8080,2022/tcp
ufw enable

Spelportarna behöver ingen regel. Docker öppnar de portar den publicerar förbi ufw, så en spelport är öppen mot internet så snart en server använder dess allokering, och stängd igen när ingen server gör det. Portar utan server förblir stängda. MariaDB och Redis lyssnar bara på själva servern.

11. Skapa en spelserver

Öppna Servers i administrationen och välj Create New:

  • Ange ett Server Name, och skriv din e-postadress i Server Owner för att välja ditt konto.
  • Välj noden, och 0.0.0.0:25565 som Default Allocation.
  • Ställ under Application Feature Limits in Backup Limit på antalet säkerhetskopior som ska sparas, till exempel 2. Från början är den 0, vilket betyder inga säkerhetskopior för servern.
  • Ange Memory och Disk Space i MiB, till exempel 2048 och 5120.
  • Välj Minecraft och ägget Paper under Nest Configuration. Standardvärdena under Docker Configuration och Service Variables installerar den senaste versionen av Minecraft.
  • Välj Create Server.

För IPv6 öppnar du serverns flik Build Configuration, väljer :::25565 under Assign Additional Ports och väljer Update Build Configuration.

Öppna sedan servern från din egen lista på https://panel.example.com. Installationen tog några sekunder på vår testserver. Välj Start. Minecraft stannar först tills du godkänner licensen, och panelen ber dig göra det: läs den och välj I Accept. Servern startar, och konsolen visar vad den skriver ut.

Spelarna ansluter till wings.example.com, adressen under Address. Minecrafts standardport, 25565, behöver de inte skriva.

12. Säkerhetskopiera

Välj Create backup på serverns flik Backups, ge den ett Backup name och välj Start backup. Säkerhetskopian av vår Minecraft-server var 208 MB. För att återställa öppnar du menyn bredvid en säkerhetskopia, väljer Restore och kryssar i Delete all files before restoring backup för att få tillbaka exakt de filer som säkerhetskopierades. Servern stannar medan den återställs. Schedules kan skapa säkerhetskopior av sig själva.

Säkerhetskopiorna sparas i /var/lib/pterodactyl/backups på samma server, så de hjälper inte om servern går förlorad. Pterodactyl kan också lagra dem i en S3-bucket, vilket vi inte testade. För att kunna bygga upp själva panelen igen sparar du en kopia av det här utanför servern:

  • en dump av databasen, från mariadb-dump --single-transaction panel | gzip > panel.sql.gz;
  • /var/www/pterodactyl/.env, med krypteringsnyckeln;
  • /etc/pterodactyl/config.yml;
  • spelservrarnas filer i /var/lib/pterodactyl/volumes, eller deras säkerhetskopior.

13. Uppdateringar

Läs Pterodactyls versionsinformation innan du uppdaterar. Så här uppdaterar du panelen:

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

För att uppdatera Wings stoppar du den, laddar ner den igen och startar den. Spelservrarna fortsätter att köra medan Wings är stoppad:

systemctl stop wings
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")"
chmod u+x /usr/local/bin/wings
systemctl restart wings

PHP, webbservern, MariaDB, Redis och Docker är paket från Debian och Docker, och täcks av de automatiska säkerhetsuppdateringarna från säkerhetsguiden.

Felsökning

Konsolen kan inte ansluta, eller visar ingen statistik. Din webbläsare ansluter till Wings på wings.example.com och port 8080. Kontrollera att Wings körs med systemctl status wings, att port 8080 är tillåten i ufw och att nodens FQDN stämmer med namnet på Wings certifikat. journalctl -u wings visar varför Wings stannade.

Med Caddy

Wings startar inte, och journalctl -u wings visar failed to configure HTTPS server med no such file or directory. Caddy har inte fått certifikatet för wings.example.com än, oftast för att dess A- eller AAAA-post inte pekar på servern. journalctl -u caddy visar varför. När filen finns i katalogen från steg 8 startar du Wings med systemctl restart wings.

Med nginx

Wings startar inte, och journalctl -u wings visar failed to configure HTTPS server med no such file or directory. Certbot har inte fått certifikatet för wings.example.com, oftast för att dess A- eller AAAA-post inte pekar på servern. Kör dess kommando certbot certonly från steg 5 igen, som visar varför det misslyckas, och sedan systemctl restart wings.

Spelarna kan inte ansluta över IPv6. Servern saknar en allokering på ::. Lägg till en som i steg 9, tilldela den som i steg 11 och starta om spelservern från dess konsol.

Fliken Backups visar "Backups cannot be created for this server because the backup limit is set to 0." Höj Backup Limit på serverns flik Build Configuration i administrationen och välj Update Build Configuration.

Kör det på din egen server

VC-S Micro

90 kr/mån

vCPU
2
Minne
8 GB
Lagring
250 GB
Trafik
10 TB
Standard
HDD · RAID 10
  • Full root-åtkomst
  • Nativt /64 IPv6
  • RAID-skyddad lagring
  • Malmö, Sverige
  • Månadsvis, ingen bindningstid
  • 7 dagars öppet köp
Alla guider