Pterodactyl vs Crafty vs MCSManager: porownanie paneli Minecraft 2026
Jeśli trzymasz Minecrafta na własnym dedyku albo VPS, prędzej czy później pojawia się pytanie: jaki panel kontrolny ma rządzić serwerami. Trójka liczących się darmowych, self-hosted paneli w 2026 roku to Pterodactyl, Crafty Controller i MCSManager. Poniżej praktyczne porównanie pod kątem architektury, instalacji, bezpieczeństwa i UX, z prawdziwymi configami i bez marketingowego ozdobnika.
Po co w ogóle panel
Goły screen z java -Xmx8G -jar paper.jar działa. Dokładnie do momentu, w którym chcesz dać moderatorowi dostęp do konsoli bez root, postawić drugi serwer, ustawić dzienny backup do S3, podejrzeć metryki CPU i graczy albo restartować na OOM. Panel ogarnia kontrolę procesu, izolację, web konsolę, menedżer plików, harmonogramy, użytkowników, SFTP i backupy.
Wszystkie trzy projekty żyją: Pterodactyl Panel idzie na linii 1.x z aktywną dyskusją 2.x, Crafty Controller siedzi na 4.x, MCSManager wydaje 10.x. Wszystkie trzy są darmowe i open source.
Pterodactyl: standard branżowy u hosterów
Pterodactyl to nie jeden program, tylko duet:
- Panel (PHP/Laravel + MySQL + Redis): web UI, baza, API.
- Wings (Go): demon na każdej nodzie, który uruchamia serwery gier wewnątrz kontenerów Docker.
Panel i Wings rozmawiają po HTTPS z tokenem nody. Panel trzyma konfigurację i sesje, Wings wykonuje pracę: startuje kontener, proxy konsoli przez WebSocket, zarządza plikami, podaje własny serwer SFTP.
Trzon architektoniczny: każdy serwer gracza siedzi w osobnym kontenerze Docker, z własnym uid, limitami CPU/RAM/IO i własnymi namespace'ami. Niesfornie napisany plugin na jednym serwerze nie zalewa sąsiadów. To też powód, dla którego około 90% komercyjnych hostingów Minecraft (Bisect, Shockbyte, ScalaCube, Apex i podobni) trzyma pod spodem Pterodactyl albo fork Pelican.
Cena za to:
- Docker i podstawy sieci linuksowych są obowiązkowe.
- Instalacja Panelu wymaga PHP 8.2+, composer, Node, MySQL/MariaDB, Redis, Nginx, certbot oraz Wings osobno na każdej nodzie.
- Footprint jest realny: 1.5 do 2 GB RAM dla Panel + Wings idle to norma.
Instalacja Pterodactyl Panel (skrót)
Pełna instrukcja na pterodactyl.io, poniżej szkielet:
# Zależności
sudo apt update
sudo apt -y install nginx mariadb-server redis-server certbot \
php8.2 php8.2-{cli,gd,mysql,pdo,mbstring,tokenizer,bcmath,xml,fpm,curl,zip} \
composer git
# Pobranie Panelu
sudo mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
sudo curl -L https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz | sudo tar -xzv
# Konfiguracja
sudo cp .env.example .env
sudo composer install --no-dev --optimize-autoloader
sudo php artisan key:generate --force
sudo php artisan p:environment:setup
sudo php artisan p:environment:database
sudo php artisan migrate --seed --force
sudo php artisan p:user:make
Następnie Wings na nodzie:
# Noda (osobna maszyna albo ta sama)
curl -sSL https://get.docker.com/ | sh
sudo systemctl enable --now docker
sudo mkdir -p /etc/pterodactyl
sudo curl -L -o /usr/local/bin/wings \
"https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64"
sudo chmod u+x /usr/local/bin/wings
Config nody generuje Panel i kopiujemy go do /etc/pterodactyl/config.yml. Po systemctl enable --now wings noda zapala się na zielono w panelu admina.
Crafty Controller: panel pod jedną maszynę
Crafty Controller (repo craftycontrol/crafty-4 na GitLab/GitHub) jest napisany w Pythonie (Tornado) i jedzie jako monolit. Jednocześnie web UI i demon. To upraszcza obsługę, ale zamyka jedną furtkę: jedna instancja Crafty rządzi tylko serwerami na maszynie, na której jest uruchomiona. Brak multi-node.
W zamian dostajesz:
- Instalacja jedną komendą (skrypt albo kontener Docker).
- Wbudowany scheduler do backupów, restartów, komend konsoli.
- Prosty RBAC z rolami, użytkownikami i bindowaniem serwer-rola.
- Import istniejących światów i serwerów z dysku.
- Mały overhead: 200-400 MB RAM na sam panel.
Crafty nie pakuje serwerów gier do Dockera. Każda instancja Minecrafta to proces java, który Crafty forkuje bezpośrednio i steruje przez stdin/stdout. Izolacja jest słabsza niż w Pterodactyl, ale powierzchnia operacyjna jest sporo mniejsza.
Instalacja Crafty Controller
Najczystsza droga, przez Docker Compose:
# docker-compose.yml
services:
crafty:
container_name: crafty_container
image: registry.gitlab.com/crafty-controller/crafty-4:latest
restart: always
environment:
- TZ=Europe/Warsaw
ports:
- "8443:8443"
- "8123:8123"
- "19132:19132/udp"
- "25500-25600:25500-25600"
volumes:
- ./docker/backups:/crafty/backups
- ./docker/logs:/crafty/logs
- ./docker/servers:/crafty/servers
- ./docker/config:/crafty/app/config
- ./docker/import:/crafty/import
Po docker compose up -d wchodzisz na https://localhost:8443, wyciągasz domyślne dane logowania z docker compose logs crafty, zmieniasz hasło i tworzysz pierwszy serwer w kreatorze.
MCSManager: lekki panel multi-instancja z Chin
MCSManager (MCSManager/MCSManager na GitHubie) pochodzi z Chin i od 2024 rośnie też w społecznościach EU/RU. Architektura jest dwuczęściowa, jak w Pterodactyl, ale bez Dockera jako twardego wymogu:
- Web (Node.js + Vue): UI panelu i administracja między nodami.
- Daemon (Node.js): zarządza procesami na nodzie, gada z Web po TCP/HTTPS.
Jeden Web może obsłużyć dziesiątki Daemonów na różnych maszynach. Daemon uruchamia instancje Minecrafta jako zwykłe procesy, opcjonalnie wewnątrz Dockera (przełącznik per instancja).
Co MCSManager robi dobrze:
- Lekki: Daemon trzyma 50-150 MB RAM, Web podobnie.
- Multi-node bez Dockera jako warstwy obowiązkowej.
- Menedżer plików i terminal webowy z pudełka.
- i18n: chiński, angielski, rosyjski, japoński.
- Pluginy, mody, światy wciągasz drag-and-drop w przeglądarce.
Co bywa szorstkie:
- Angielska dokumentacja miejscami kuleje, najlepsze poradniki dalej po chińsku.
- Model bezpieczeństwa prostszy: procesy serwerów lecą pod tym samym uid co Daemon. Bez Dockera widzą się nawzajem w plikach.
- Mniej integracji z biznesem (billing).
Instalacja MCSManager
Oficjalny one-liner (instaluje Web i Daemon):
sudo su -c "wget -qO- https://script.mcsmanager.com/setup.sh | bash"
Skrypt ciągnie Node.js 20+, klonuje repo, ustawia jednostki systemd mcsm-web i mcsm-daemon. Web słucha na 23333, Daemon na 24444. Wchodzisz na http://server-ip:23333, rejestrujesz admina, podpinasz lokalny Daemon tokenem.
Dla multi-node tylko Daemon na drugiej maszynie:
sudo su -c "wget -qO- https://script.mcsmanager.com/setup_daemon.sh | bash"
cat /opt/mcsmanager/daemon/data/Config/global.json | grep key
Bierzesz key, dodajesz nodę w Web po IP i tokenie.
Duża tabela porównawcza
| Kryterium | Pterodactyl 1.x | Crafty Controller 4.x | MCSManager 10.x |
|---|---|---|---|
| Język/stack | PHP Laravel + Go (Wings) | Python (Tornado) | Node.js + Vue |
| Architektura | Panel + Wings (rozdzielnie) | Monolit | Web + Daemon |
| Multi-node | Tak, natywnie | Nie | Tak, natywnie |
| Docker dla serwerów gier | Wymagany | Brak | Opcjonalny |
| Trudność instalacji | Wysoka (10-15 kroków) | Niska (jeden docker compose) | Niska (jeden skrypt) |
| RAM panelu w idle | 1.5-2 GB | 250-400 MB | 100-200 MB (Web+Daemon) |
| Web konsola | WebSocket | WebSocket | WebSocket |
| Menedżer plików | Tak, + SFTP | Tak | Tak |
| SFTP per serwer | Tak, wbudowany | Nie (host SSH) | Nie (host SSH) |
| Backupy | Lokalne + S3 | Lokalne + harmonogram | Lokalne + harmonogram |
| UX instalacji pluginów | Plikami | Katalog CurseForge (4.4+) | Plikami, szybki upload |
| RBAC/role | Granularny | Granularny | Bazowy |
| Integracje billingu | Blueprint, Pterodactyl Billing | Brak | Brak |
| 2FA | Tak, TOTP | Tak, TOTP | Tak, TOTP |
| Sandbox procesów | Docker namespaces, cgroups | Brak | Opcjonalny Docker |
| API | REST, udokumentowane | REST | REST |
| Forge/Fabric/Paper | Przez eggs | Przez typy serwerów | Przez szablony |
| Aktywność repo (2025-2026) | Wysoka | Wysoka | Wysoka |
| Najlepsze dopasowanie | Hosterzy, zespoły | Solo admini, domowe serwery | Pasjonaci, multi-node bez Dockera |
UX pluginów i plików
Pterodactyl pokazuje pliki przez web file manager i SFTP per serwer. Pluginy zwykle wchodzą po SFTP do plugins/ albo przez upload w przeglądarce. W samym Panelu nie ma marketu pluginów, ale moduły zewnętrzne typu Blueprint dokładają PluginUploader.
Crafty Controller od 4.4 ma wbudowane wyszukiwanie i instalację pluginów z CurseForge przez klucz API. Wpisujesz EssentialsX, klikasz Install, jar ląduje w plugins/.
MCSManager stawia na szybkość uploadu. File manager obsługuje drag-and-drop, masowe usuwanie, rozpakowywanie zip, edytor YAML/JSON w przeglądarce. Brak katalogu, ale workflow upload-i-restart wydaje się najszybszy z trójki.
Backupy
Pterodactyl traktuje Backups jako obiekt pierwszej klasy: per serwer limit sztuk, rotacja, backend (lokalny dysk albo zgodne z S3). Snapshot z UI lub API, restore z listy.
Crafty planuje backupy przez reguły cron-podobne, ląduje w /crafty/backups, rotuje po liczbie albo wieku. Brak natywnego S3, ale można podpiąć bucket przez rclone-mount.
MCSManager robi planowane backupy per instancja lokalnie. Bez natywnego S3.
Wydajność i overhead
Na maszynie 16 GB / 8 vCPU różnica zaczyna boleć dopiero przy suficie:
- Pterodactyl: Panel + Wings razem siedzą na 1.5-2 GB RAM w idle, plus daemon Dockera. Każdy kontener serwera dokłada ~30-50 MB overheadu na namespace.
- Crafty Controller: 300-400 MB na panel, procesy gier lecą natywnie, bez container overhead.
- MCSManager: 100-200 MB na Web+Daemon, procesy natywne.
Na 4-gigabajtowym domowym pudełku Pterodactyl zadusi resztę. Na VPS-ie 16+ GB różnica gubi się w szumie.
Bezpieczeństwo: na co zwracać uwagę
Pterodactyl daje najmocniejszą izolację. Każdy serwer w swoim kontenerze, własne uid, limity cgroups. RCE przez plugin na jednym serwerze nie daje atakującemu shella na całym hoście. SFTP też jest własny per Wings, nie host sshd, z prawami per użytkownik i bez dostępu do shella.
Crafty puszcza wszystkie instancje Minecrafta pod uid crafty. Jeśli atakujący wbije się przez plugin na jednym serwerze, zobaczy pliki wszystkich pozostałych serwerów tej samej instalacji Crafty. Dostęp graczy i adminów leci przez web UI z RBAC, osobnego SFTP nie ma.
MCSManager przypomina Crafty w trybie single-node, ale Daemon możesz postawić na osobnej maszynie i zyskasz izolację sieciową między nodami. Na jednej nodzie instancje widzą się nawzajem, jeśli nie włączysz Dockera per instancja.
Wspólne minimum dla całej trójki:
- TLS na web UI obowiązkowo (Let's Encrypt).
- 2FA dla każdego admina.
- Ograniczenie dostępu do admina po IP (nginx albo firewall).
- Backupy off-site.
- Patche bezpieczeństwa wgrywać w ciągu tygodnia od release.
Kiedy który panel
Pterodactyl, jeśli:
- Komercyjny hosting albo wewnętrzny multi-tenant od 5 użytkowników.
- Potrzeba twardej izolacji i kwot CPU/RAM.
- Docker i MySQL nie są problemem.
Crafty Controller, jeśli:
- Jedna osoba albo zespół 2-3 adminów.
- Jeden serwer, jeden VPS lub dedyk.
- Zależy ci na prostocie i czystym UI bez dockerowego podatku.
MCSManager, jeśli:
- 2+ nody, ale Docker nie jako podstawa.
- Liczy się minimalny footprint Daemona.
- Zespół ogarnia angielską doc i czasem chińskie issue.
Ekosystem i forki
Pterodactyl ma najgłębszy ekosystem dodatków z trójki. Rozszerzenia Blueprint dorzucają plugin uploader, backup do konkretnych bucketów S3, paczki tematów. Pterodactyl Billing, Paymenter i podobne moduły spinają sprzedaż serwerów gier z panelem dla resellerów. Crafty i MCSManager nie mają tego w porównywalnej formie, bo ich docelowy użytkownik to admin własnych pudełek, a nie biznes hostingowy.
Crafty stoi na aktywnej społeczności na Discordzie. Release'y idą regularnie, GitLab issue tracker działa sprawnie. Marketu pluginów w stylu Pterodactyl brak, ale dla małej ekipy wbudowane funkcje pokrywają około 95% potrzeb.
MCSManager ma najsilniejszą społeczność w Azji. Release'y są częste, GitHub tracker jest dwujęzyczny, a UX po angielsku z każdym minor release w 2025-2026 wyraźnie się poprawia. Jeśli zależy ci na absolutnie najlżejszym footprint, to jest twój panel.
Po wystawieniu na publiczny ruch
Kiedy panel stoi i instancje Minecrafta są dostępne pod play.example.com, ląduje kolejny problem: czyszczenie ruchu wchodzącego. Każda publiczna maszyna z otwartym 25565 wcześniej czy później złapie albo boty z minecraftowych skanerów (te IP, które widać w logach jak spamują \x00), albo flood UDP od znudzonego gracza. Panel izoluje procesy, ale warstwa sieciowa zostaje na serwerze. Tam właśnie pracują filtry L4/L7 (MineGuard, Cloudflare Spectrum, własne reguły nftables), siedzące między internetem a nodą. Wybór panelu nie wpływa na wybór filtra: Pterodactyl, Crafty i MCSManager równo akceptują ruch przez proxy.
FAQ
Czy mogę przemigrować z Crafty na Pterodactyl bez utraty światów?
Tak. Zatrzymujesz serwer w Crafty, kopiujesz katalog świata i server.properties przez SFTP. Tworzysz nowy serwer w Pterodactyl na pasującym egg (Paper, Fabric itd.), zatrzymujesz, wgrywasz świat i pluginy przez SFTP, startujesz. Gracze stracą tylko historię czatu, jeśli mieszka w bazie pluginu logującego, przywiązanej do starej maszyny.
Pterodactyl czy fork Pelican?
Pelican to fork po konflikcie w zespole Pterodactyl w 2024. Na początku 2026 Pelican aktywnie się rozwija, ale ekosystem (eggs, motywy, integracje billingu) jest szerszy po stronie Pterodactyl. Świeży deploy bez przywiązania do starych eggs: Pelican wart spojrzenia. Działający Ptero: brak pilnej potrzeby migracji.
Czy MCSManager jest bezpieczny mimo pochodzenia?
Kod jest otwarty na GitHubie, społeczność robiła review, release'y idą aktywnie. Znanych backdoorów nie ma. Standardowa higiena (firewall, 2FA, port 24444 nigdy w publiczny internet) obowiązuje jak przy każdym panelu.
Który panel jest najwygodniejszy do modpacków Forge/NeoForge?
Wszystkie trzy obsługują modded servery, tylko różnymi drogami. Pterodactyl wymaga egg dla Forge/NeoForge (gotowe są w pterodactyl/yolks). Crafty ma wbudowanego kreatora installera Forge. MCSManager ogarnia Forge przez szablon albo ręczny upload jara z folderem mods/.
Ile RAM realnie potrzeba pod panel + 2-3 serwery?
Komfortowo na dedyku: Pterodactyl chce minimum 16 GB (2 GB panel + Docker + 3x4 GB serwery + zapas). Crafty/MCSManager to samo wbiją w 14-15 GB.
Czy mogę trzymać panel za Cloudflare?
Web UI bez problemu. Port gry (25565) na Cloudflare Free nie jest proxowany, do UDP/Bedrock i TCP gameplay potrzebny Cloudflare Spectrum albo inny proxy lub filtr.
Niezależnie od wyboru panelu, opłaca się domknąć całą drogę: tylko IP filtra lub proxy może dotykać portu gry, a strona Java powinna wymagać BungeeGuard albo Velocity Modern Forwarding, żeby nikt nie ominął front-endu i nie spoofował IP prosto na backend. Wybierz panel pod rozmiar zespołu i poziom izolacji, a warstwę sieciową potraktuj jako osobny temat z osobną odpowiedzią.
Chroń swój serwer przed atakami DDoS
Darmowa ochrona z konfiguracją w 5 minut. 1 TB ruchu w zestawie.
Wypróbuj za darmoPowiązane artykuły
Hardcore SMP serwer Minecraft: jeden żywot, perma-death 2026
Jak postawić serwer Hardcore SMP z jednym życiem: pluginy ban-on-death, anticheat, whitelista, sezony, integracja z Discordem i backupy.
XDP i eBPF: filtracja pakietów nowej generacji dla serwerów gamingowych
Jak XDP i eBPF pozwalają filtrować pakiety na poziomie sterownika karty sieciowej, obsługując ponad 14 milionów pakietów na sekundę na jednym rdzeniu. Dlaczego iptables jest za wolny dla współczesnych ataków DDoS i jak programowalna filtracja zmienia ochronę serwerów gamingowych.
Trendy atakow DDoS na serwery gier w 2026
Analiza kluczowych trendow atakow DDoS na branze gier w 2026 roku: wzrost wolumenow do terabitowych, ewolucja atakow specyficznych dla Minecrafta, rozpowszechnienie botnetow IoT i nowe technologie ochrony oparte na XDP/eBPF oraz machine learning.