- Część 2
- Sprawdzono 29.10.2026
Jak uruchomić serwer Minecraft przez aaPanel i Docker?
aaPanel daje wygodny dostęp do plików, logów i kontenerów przez przeglądarkę, a Docker zamyka serwer Minecraft wraz z Javą w powtarzalnym środowisku. To rozwiązanie ma więcej elementów niż zwykła usługa systemowa, ale późniejszy restart, podgląd logów i zmiana konfiguracji są prostsze.
Dla kogo jest ta metoda?
Wybierz aaPanel i Docker, jeśli panel już działa na twoim VPS-ie albo wolisz zarządzać serwerem z przeglądarki. Jeżeli chcesz możliwie najmniej warstw i dobrze czujesz się w terminalu, instalacja Paper jako usługi systemowej z poprzedniej części serii pozostaje prostsza.
Co właściwie zainstalujemy?
Na VPS-ie będą działały trzy warstwy: Ubuntu, panel aaPanel oraz Docker. W Dockerze uruchomimy obraz itzg/minecraft-server, który pobiera wybrany typ serwera, dobiera Javę i zapisuje cały świat w trwałym katalogu na VPS-ie.
| Element | Za co odpowiada | Gdzie szukać problemu |
|---|---|---|
| aaPanel | Panel, pliki, terminal, podgląd kontenerów i logów | Logowanie do panelu, ustawienia bezpieczeństwa, moduł Docker |
| Docker Compose | Port, pamięć, wersja serwera, automatyczny restart i katalog danych | Plik compose.yaml oraz log kontenera |
| Paper | Właściwy serwer Minecraft i obsługa pluginów | /www/minecraft/data/logs/latest.log |
Kontener nie jest kopią zapasową. Jego usunięcie nie zabierze świata tylko dlatego, że katalog /data podłączymy do zwykłego katalogu na VPS-ie. Ten katalog nadal trzeba regularnie kopiować poza maszynę.
Zanim zaczniesz
- Przygotuj VPS z Ubuntu, publicznym adresem IP i działającym logowaniem SSH.
- Dla małej grupy rozsądny start to 2 vCPU i 6–8 GB RAM. W przykładzie oddajemy Javie 4 GB.
- W zaporze dostawcy otwórz 25565/TCP dla graczy. Port panelu dopuść najlepiej tylko ze swojego publicznego IP.
- Jeżeli na porcie 25565 działa już Paper uruchamiany przez
systemd, nie włączaj równocześnie kontenera. Najpierw zrób kopię i zatrzymaj starą usługę. - Do wykonania instalacji potrzebujesz uprawnień administratora. Po wszystkim zachowaj działający dostęp SSH — panel nie powinien być jedyną drogą do serwera.
1. Zainstaluj aaPanel
aaPanel zaleca instalację na świeżym systemie; w bieżącej dokumentacji jako podstawowy wybór wskazuje Ubuntu 22.04, choć lista obsługiwanych systemów obejmuje także nowsze wydania. Zaloguj się przez SSH, przejdź na konto administratora poleceniem sudo -i i skopiuj aktualne polecenie instalacyjne z oficjalnej strony aaPanel. W dniu sprawdzania poradnika wyglądało ono tak:
URL=https://www.aapanel.com/script/install_panel_en.sh && if [ -f /usr/bin/curl ]; then curl -ksSO "$URL"; else wget --no-check-certificate -O install_panel_en.sh "$URL"; fi; bash install_panel_en.sh forum
Po instalacji zapisz adres panelu, jego port, bezpieczną ścieżkę wejścia, nazwę użytkownika i wygenerowane hasło. Te dane można później odczytać przez SSH poleceniem bt default.
Nie otwieraj wszystkich portów z komunikatu instalatora
Do samego Minecrafta potrzebujesz publicznie tylko 25565/TCP. Port panelu ogranicz do własnego IP w zaporze Oracle, Hetznera lub innego dostawcy. Porty WWW, FTP i baz danych otwieraj dopiero wtedy, gdy naprawdę uruchamiasz takie usługi.
2. Zabezpiecz panel przed instalacją gry
Wejdź do Settings → Security i wykonaj przynajmniej poniższe kroki:
- Ustaw własną, długą nazwę użytkownika oraz niepowtarzalne hasło.
- Zostaw włączony szyfrowany dostęp do panelu i docelowo skonfiguruj prawidłowy certyfikat TLS.
- Włącz Google Authenticator albo dodatkowe zabezpieczenie BasicAuth.
- Zachowaj losową Security Entrance; nie zmieniaj jej na łatwe
/admin. - Jeżeli masz stały adres, ustaw Authorized IP. Najpierw sprawdź go i nie zamykaj sesji SSH, aby nie odciąć sobie dostępu.
- Nie włączaj API ani tymczasowych kont, jeśli ich nie używasz.
Po zmianie portu panelu najpierw dodaj nową regułę w zaporze dostawcy, sprawdź logowanie w drugiej karcie, a dopiero później usuń starą regułę.
3. Zainstaluj Docker w aaPanel
W bocznym menu otwórz Docker. Jeśli komponent nie jest jeszcze dostępny, aaPanel zaproponuje jego instalację. Nie musisz instalować stosu LNMP lub LAMP tylko po to, aby uruchomić Minecrafta.
Po instalacji sprawdź w zakładce Docker → Overview, czy usługa działa. W Docker → Compose powinny być dostępne polecenia dodawania, uruchamiania, zatrzymywania i aktualizowania projektu.
Docker i UFW
Docker tworzy własne reguły sieciowe. Oficjalna dokumentacja ostrzega, że ruch do opublikowanego portu kontenera może zostać przekierowany zanim trafi do reguł UFW. Dlatego port 25565 kontroluj przede wszystkim w zaporze dostawcy chmury, a panel ogranicz do swojego IP. Nie wyłączaj mechanizmu iptables Dockera — bez zastępczej konfiguracji łatwo zepsuć sieć kontenerów.
4. Przygotuj trwały katalog świata
W terminalu aaPanel albo przez SSH wykonaj:
mkdir -p /www/minecraft/data
chown -R 1000:1000 /www/minecraft
Obraz uruchamia serwer domyślnie jako użytkownik o identyfikatorze 1000. Właściwy właściciel katalogu zapobiega błędom Permission denied. Wszystkie światy, ustawienia, logi i pluginy znajdą się później w /www/minecraft/data.
5. Dodaj projekt Compose
Przejdź do Docker → Compose → Add Compose. Nazwij projekt minecraft, a w polu konfiguracji wklej:
services:
mc:
image: itzg/minecraft-server:latest
container_name: mc
restart: unless-stopped
tty: true
stdin_open: true
ports:
- "25565:25565/tcp"
environment:
EULA: "TRUE"
TYPE: "PAPER"
VERSION: "LATEST"
MEMORY: "4G"
TZ: "Europe/Warsaw"
ONLINE_MODE: "TRUE"
ENABLE_WHITELIST: "TRUE"
ENFORCE_WHITELIST: "TRUE"
VIEW_DISTANCE: "8"
SIMULATION_DISTANCE: "6"
MOTD: "Prywatny serwer Minecraft"
volumes:
- /www/minecraft/data:/data
stop_grace_period: 1m
Ustawienie EULA: "TRUE" oznacza akceptację umowy licencyjnej Minecrafta — zrób to tylko po jej przeczytaniu. ONLINE_MODE: "TRUE" pozostawia oficjalne uwierzytelnianie graczy. Nie wyłączaj go, aby tworzyć tak zwany serwer non-premium.
VERSION: "LATEST" jest wygodne przy pierwszym, pustym świecie. Gdy serwer już działa, odczytaj wersję z logu i wpisz ją w tym miejscu na stałe. Dzięki temu zwykłe odtworzenie kontenera nie podniesie przypadkiem wersji gry przed aktualizacją pluginów. Nie przydzielaj Javie całej pamięci VPS-a — kontener, aaPanel i system także potrzebują RAM.
6. Uruchom serwer i przeczytaj log
Zapisz projekt i wybierz Start. Pierwsze uruchomienie trwa dłużej, ponieważ obraz pobiera Paper oraz właściwą Javę. Otwórz Compose Logs lub log kontenera mc. Serwer jest gotowy dopiero po komunikacie zawierającym Done.
W terminalu te same informacje pokaże polecenie:
docker logs --tail 200 -f mc
Z podglądu wychodzisz skrótem Ctrl+C; kontener nadal działa. W grze dodaj serwer pod adresem ADRES_IP:25565.
7. Dodaj graczy do białej listy
Lista jest włączona, ale na początku pusta. Dla każdego gracza wykonaj, podając jego nazwę profilu Java Edition:
docker exec mc rcon-cli whitelist add NICK_GRACZA
Jednej zaufanej osobie możesz nadać uprawnienia operatora:
docker exec mc rcon-cli op NICK_ADMINA
RCON działa wewnątrz kontenera, aby umożliwić bezpieczne zatrzymanie i wykonywanie poleceń. W Compose nie publikujemy portu 25575, więc konsola RCON nie jest wystawiona do internetu.
8. Jak przenieść istniejący serwer Paper?
Najpierw zatrzymaj starą usługę i kontener. Nigdy nie kopiuj aktywnego świata:
systemctl stop minecraft
docker stop mc
rsync -a /opt/minecraft/server/ /www/minecraft/data/
chown -R 1000:1000 /www/minecraft/data
docker start mc
Sprawdź log i wejdź do świata. Dopiero gdy wszystko działa, wyłącz automatyczny start starej usługi:
systemctl disable minecraft
Jeśli wcześniejszy serwer był Fabric, Forge albo NeoForge, nie uruchamiaj jego świata jako Paper bez analizy. Bloki i przedmioty dodane przez mody mogą zniknąć. Wróć wtedy do kopii i wybierz właściwy typ kontenera zgodnie z następną częścią serii.
9. Kopia zapasowa, aktualizacja i cofnięcie zmiany
Najprostsza pewna kopia powstaje przy zatrzymanym kontenerze:
docker stop mc
mkdir -p /www/backup/minecraft
tar -czf /www/backup/minecraft/minecraft-2026-10-29.tar.gz -C /www/minecraft data
docker start mc
Zmień datę w nazwie i pobierz archiwum na inny komputer. Kopia w /www/backup nie pomoże po utracie całego VPS-a. Harmonogram można później dodać w aaPanel Cron, ale najpierw wykonaj ręczne odtworzenie na katalogu testowym.
Przed aktualizacją zrób kopię, ustaw konkretną wersję Minecrafta, wybierz w Compose Update Image i obserwuj pełny start. Nie aktualizuj Paper, pluginów i świata jednocześnie bez możliwości cofnięcia. Powrót oznacza odtworzenie całego zgodnego zestawu: świata, konfiguracji, pluginów i poprzedniej wersji serwera.
Najczęstsze problemy
| Objaw | Co sprawdzić |
|---|---|
| Kontener ciągle się restartuje | Otwórz pełny log. Najczęstsze przyczyny to brak akceptacji EULA, zła wersja albo brak zapisu do katalogu. |
| Permission denied | Wykonaj chown -R 1000:1000 /www/minecraft i ponownie uruchom projekt. |
| Address already in use | Port 25565 zajmuje stara usługa lub drugi kontener. Sprawdź ss -lntp oraz listę kontenerów. |
| Serwer działa, ale nie można wejść | Sprawdź 25565/TCP w zaporze dostawcy, mapowanie portu oraz zgodność wersji klienta. |
| Proces został zabity kodem 137 | Zabrakło pamięci. Zmniejsz MEMORY, zostaw zapas na system i aaPanel albo zwiększ VPS. |
| Panel zniknął po zmianie zabezpieczeń | Połącz się przez SSH. Polecenia bt default i menu bt pomagają odzyskać port, ścieżkę oraz dostęp. |
Źródła
- aaPanel: instalacja i dane logowania
- aaPanel: zabezpieczenia panelu
- aaPanel: Docker, kontenery i Compose
- Docker: porty kontenerów a zapory i UFW
- itzg/docker-minecraft-server: Compose i trwały katalog danych
- itzg/docker-minecraft-server: whitelist, RCON i server.properties
- Minecraft EULA
Poradnik przygotowany z pomocą AI; interfejs aaPanel, ustawienia obrazu i dokumentację sieci Dockera sprawdzono 29.10.2026. Przed instalacją porównaj polecenie oraz nazwy opcji z aktualną dokumentacją. Zgłoś różnicę lub błąd.