Instalacja na Linuksie / VPS

Wolisz instrukcję krok po kroku? Otwórz interaktywny poradnik instalacji, aktualizacji i ustawień. Wybierzesz komputer lub VPS i otrzymasz instrukcje dla swojej instalacji Yohary.

Na Linuksie nie ma okienkowego launchera – wszystko robisz w terminalu. Są dwie drogi: instalator jednym plikiem (najprościej, od wersji 2.13.0) albo krok po kroku (niżej, gdy chcesz mieć wszystko pod kontrolą).

Najprościej: instalator jednym plikiem

Czego potrzebujesz:

  • VPS z Debianem albo Ubuntu, procesor x86_64 (ARM się nie nada), zalogowany jako root;
  • 8 GB RAM (4 GB działa z mniejszą liczbą botów – instalator założy plik wymiany) i 60–80 GB dysku.

Instalacja – zaloguj się na VPS jako root i wpisz dwie komendy:

wget -O instaluj-vps.sh https://metin2sp.pl/wiki/pobierz/instaluj-vps.sh
sh instaluj-vps.sh

Jeśli system nie ma wget, najpierw: apt-get update && apt-get install -y wget ca-certificates.

Skrypt sam pobierze pełną paczkę serwera: MT2009-PLUS-Serwer-2.12.0.zip (ok. 140 MB). Tę samą paczkę możesz też pobrać ręcznie – działa na Windowsie (launcher) i na Linuksie.

Co robi, po kolei:

  1. Sprawdza maszynę i doinstalowuje wget, unzip, curl i python3.
  2. Pobiera pełną paczkę z metin2sp.pl i rozpakowuje folder serwera do /opt/mt2009plus.
  3. Czyta z GitHuba, jaka jest najnowsza wersja, pobiera paczkę aktualizacji, sprawdza jej sumę SHA-256 i nakłada ją na folder.
  4. Na końcu pokazuje adres serwera i komendy do haseł i paneli. Konta admin i test dostają losowe hasła.

Opcje:

Opcja Co robi
--paczka URL inny bezpośredni link do pełnej paczki (.zip albo .tar.gz) zamiast tej z metin2sp.pl
--folder KATALOG gdzie ma stać serwer (domyślnie /opt/mt2009plus)
--address ADRES publiczny adres serwera (domyślnie odczytany adres IPv4 VPS)
--bots N liczba botów (domyślnie dobrana do pamięci)
--bez-aktualizacji zostaw wersję z pełnej paczki
--force instaluj mimo małej pamięci albo dysku
--tylko-pliki tylko kroki 1–3 – pliki gotowe w folderze, bez Dockera

Po instalacji – z folderu /opt/mt2009plus:

sh linux-port/tools/vps-install.sh status              # czy budowa jeszcze trwa, czy serwer działa
sh linux-port/tools/vps-install.sh passwords           # hasła kont admin i test
sh linux-port/tools/vps-install.sh add-account LOGIN   # konto dla znajomego
sh linux-port/tools/vps-install.sh update              # aktualizacja do nowej wersji
sh linux-port/tools/vps-install.sh logs                # ostatnie logi

Panele są dla bezpieczeństwa widoczne tylko na samym VPS. Otwierasz je przez tunel SSH – na swoim komputerze:

ssh -L 7788:127.0.0.1:7788 -L 7790:127.0.0.1:7790 root@ADRES_VPS

i w przeglądarce http://127.0.0.1:7788 (panel klasyczny) oraz http://127.0.0.1:7790 (Seban Panel), dopóki okno SSH jest otwarte.

W kliencie gry dodaj serwer z adresem VPS, np. plikiem Ustaw_serwer_VPS.bat. Porty gry to TCP 11000 i 13000–13002 – jeśli dostawca VPS ma własną zaporę, otwórz je tam.

Krok po kroku

Poradnik od czystego Debiana 13 do działającego serwera w najnowszej wersji. Na Ubuntu wygląda to tak samo (w repozytorium Dockera zamień debian na ubuntu).

1. Czego potrzebujesz

  • Maszyny z Debianem 13 (VPS albo mini PC, z pulpitem albo bez) i kontem z sudo.
  • Procesora x86 (Intel/AMD) – serwer gry nie działa na ARM.
  • Co najmniej 4 GB RAM i kilkanaście GB wolnego dysku (więcej przy tysiącach botów albo drugim kanale).
  • Internetu – Docker pobiera obrazy bazowe, a serwer aktualizacje.
  • Pełnej paczki MT2009 PLUS z Discorda. Potrzebny jest tylko folder Serwer.

Nie używaj instalatora installer/install.sh ani aktualizatora z linii 1.x oficjalnego projektu. Nakładają pliki innej wersji silnika i psują działający serwer (m.in. stawki). Ten poradnik korzysta tylko z paczki i skryptu linux-port/tools/update.sh.

2. System i Docker

Aktualizacja systemu i narzędzia:

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y ca-certificates curl gnupg unzip

Docker z oficjalnego repozytorium Dockera (w repozytorium Debiana bywa starsza wersja bez Compose v2):

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker

Sprawdź, czy działa:

sudo docker run hello-world
sudo docker compose version

Pierwsza komenda wypisuje powitanie Dockera, druga numer wersji Compose (v2.x). W poradniku wszystkie komendy Dockera mają sudo. Jeśli dodasz się do grupy docker (sudo usermod -aG docker $USER, potem ponowne logowanie), używaj już wszędzie samego docker i nie mieszaj go z sudo docker.

3. Paczka serwera na maszynie

Plik zip wgrywasz na serwer z własnego komputera, np. scp:

scp MT2009-PLUS.zip UZYTKOWNIK@ADRES_SERWERA:~/

albo programem WinSCP / FileZilla. Jeśli masz bezpośredni link, możesz pobrać od razu na serwerze: wget -O MT2009-PLUS.zip "LINK".

Rozpakuj tylko folder Serwer do /opt/metin2/stack (nazwę folderu w zipie sprawdź komendą unzip -l):

sudo mkdir -p /opt/metin2/_new
cd /opt/metin2/_new
sudo unzip -q ~/MT2009-PLUS.zip
sudo mv "/opt/metin2/_new/<folder paczki>/Serwer" /opt/metin2/stack
sudo rm -rf /opt/metin2/_new
cat /opt/metin2/stack/VERSION

W /opt/metin2/stack mają być m.in. VERSION, linux-port/, launcher/ i tools/.

4. Plik .env

Cała konfiguracja jest w jednym pliku:

cd /opt/metin2/stack/linux-port/docker
sudo cp .env.example .env
sudo nano .env

Wystarczy sekcja „1. REQUIRED” na górze:

Ustawienie Co wpisać
M2_PUBLIC_ADDRESS publiczny adres IP maszyny albo domena (curl -4 ifconfig.me). Bez tego klient zawiśnie na „łączenie z serwerem”
M2_DB_ROOT_PASSWORD, M2_DB_PASSWORD dwa różne, długie hasła, np. z openssl rand -hex 24 (bez spacji i cudzysłowów)
M2_DB_PUBLISH_PORT zostaw 3306, chyba że port jest zajęty
M2_PANEL_PASSWORD możesz zostawić puste – panel wylosuje hasło przy pierwszym starcie
PLAYERBOT_AUTOSPAWN_COUNT ile botów startuje z grą; na pierwszy start daj mniej, np. 50 – potem zmienisz w panelu

M2_COMPOSE_PROJECT_NAME i M2_CONTAINER_PREFIX zostaw puste. Trzeba je ustawić dopiero przy drugiej, osobnej kopii serwera na tej samej maszynie.

5. Pierwsze uruchomienie

cd /opt/metin2/stack/linux-port/docker
sudo docker compose up -d --build

Pierwszy build kompiluje serwer od zera: od kilkunastu do kilkudziesięciu minut. Konsola może długo milczeć – to normalne.

6. Czy wszystko działa

sudo docker compose ps

Usługi mają status Up / healthy. Kontener *-playerbot-migrate kończy się raz (Exited (0)) – tak ma być.

Hasło panelu, jeśli zostawiłeś je puste:

sudo docker compose logs panel | grep -A4 PASSWORD

Panele: http://ADRES_SERWERA:7788 (klasyczny, mapa botów) i http://ADRES_SERWERA:7790 (Seban Panel). W grze: konto admin / admin z czterema postaciami GM – zmień to hasło, zanim serwer zobaczą inni.

Coś nie wstało? Najpierw logi:

sudo docker compose logs game --tail 80
sudo docker compose logs panel --tail 40

Porty gry: TCP 11000 i 13000–13002 (z drugim kanałem także 13010–13012) – otwórz je w zaporze i u dostawcy VPS.

7. Baza danych z komputera (opcjonalnie)

Baza słucha tylko na 127.0.0.1 serwera.

  • Tunel SSH (bezpieczniej) – w Navicat / HeidiSQL ustaw połączenie przez SSH do tej maszyny, a w nim 127.0.0.1:3306.
  • Otwarty port (wygodniej, mniej bezpiecznie) – obok docker-compose.yml utwórz docker-compose.override.yml:
services:
  mariadb:
    ports: !override
      - "0.0.0.0:3306:3306"

i uruchom sudo docker compose up -d. Logujesz się jako root (hasło M2_DB_ROOT_PASSWORD) albo metin2 (hasło M2_DB_PASSWORD). Wtedy bazę chroni tylko siła hasła – rób to świadomie.

8. Aktualizacja

cd /opt/metin2/stack
sudo sh linux-port/tools/update.sh check   # tylko pokazuje wersje
sudo sh linux-port/tools/update.sh run     # instaluje najnowszą

9. Przydatne komendy

sudo docker compose ps            # stan
sudo docker compose down          # zatrzymanie (baza zostaje)
sudo docker compose up -d         # start
sudo docker compose logs -f game  # logi gry

Czego nie robić:

  • docker compose down -v – -v kasuje bazę danych.
  • Starego installer/install.sh i aktualizatora z linii 1.x.
  • Ręcznych zmian w game/src/ bez przebudowy – zobacz Baza danych i pliki serwera.

Jeśli po aktualizacji coś nie wstaje: nic nie zostało skasowane, poprzednie obrazy są na dysku. Sprawdź logi, popraw i uruchom sudo docker compose up -d --build jeszcze raz.

Zobacz też