Це практичне доповнення до нашої сторінки VPS під ігровий сервер. Та — про те, який тариф підходить; ця — про те, як реально підняти сервер: Paper, нормальний сервіс systemd, конфіг, що економить RAM, фаєрвол і бекапи. До кінця у вас буде сервер Minecraft, що переживе падіння, переживе перезавантаження і не зжере тихо всю машину.
Одна чесна ремарка перед стартом: ліміти CPU і RAM зі сторінки юзкейсу нікуди не поділися. Paper на тарифі Small або Medium чудово йде для компанії друзів. Модпак на 150 модів для великої спільноти — не те, під що ці тарифи, і жоден конфіг це не лагодить. Із цим ясно — будуємо.
1. Встановити Java
Paper працює на Java. Ставимо headless JDK — для актуальної версії Minecraft це Java 21:
sudo apt update
sudo apt install -y openjdk-21-jre-headless
java -version
Якщо ваша версія Minecraft старіша, ставте Java, яку вона просить (17 для епохи 1.18-1.20). Логи сервера гучно поскаржаться, якщо версія не та.
2. Налаштувати каталог сервера і Paper
Запускайте сервер під власним користувачем, не під root — якщо щось піде не так, радіус ураження має бути маленьким.
sudo adduser --system --group --home /opt/minecraft minecraft
sudo -u minecraft mkdir -p /opt/minecraft/server
cd /opt/minecraft/server
Завантажте jar Paper під вашу версію Minecraft (URL візьміть на їхній сторінці завантажень) і збережіть як server.jar:
sudo -u minecraft wget -O server.jar "ВСТАВТЕ_URL_ЗАВАНТАЖЕННЯ_PAPER"
Запустіть один раз, щоб згенерувати конфіги, потім прийміть EULA:
sudo -u minecraft java -Xms1G -Xmx3G -jar server.jar --nogui
# він одразу зупиниться і попросить прийняти EULA
sudo -u minecraft sed -i 's/eula=false/eula=true/' eula.txt
-Xmx3G — це стеля купи JVM. На тарифі Small з 4 ГБ ~3 ГБ під JVM лишають ОС повітря. Не ставте всю RAM — у JVM є накладні понад купу, а OOM-killer не домовляється.
3. Налаштувати server.properties для економії RAM
Ось де ви купуєте собі продуктивність безкоштовно. Відкрийте server.properties і задайте:
view-distance=8
simulation-distance=6
max-players=10
view-distance— скільки чанків тримається завантаженими навколо кожного гравця. Дефолтні 10 щедрі; 8 (або навіть 6) помітно зрізають RAM і CPU, і майже ніхто не помічає різниці.simulation-distance— як далеко реально тікають сутності, редстоун і ріст посівів. Нижче — дешевше. 6 — розумна стартова точка.max-players— ставте те, що реально очікуєте, щоб раптовий натовп не підірвав бюджет RAM.
Памʼятайте про реальність одного потоку: тік Minecraft упирається в одне ядро. Якщо TPS падає, більше RAM не допоможе — допоможуть нижчий simulation-distance і ліміти мобів.
4. Запустити як сервіс systemd
Це та частина, що перетворює «jar, який я разок запустив» на «сервер». Створіть /etc/systemd/system/minecraft.service:
[Unit]
Description=Minecraft Paper Server
After=network.target
[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xms1G -Xmx3G -jar server.jar --nogui
Restart=on-failure
RestartSec=10
SuccessExitStatus=0 143
[Install]
WantedBy=multi-user.target
Restart=on-failure — той самий важливий рядок: якщо JVM впаде, systemd поверне її за десять секунд. SuccessExitStatus=... 143 не дає systemd вважати штатне завершення по SIGTERM падінням. Вмикаємо і запускаємо:
sudo systemctl daemon-reload
sudo systemctl enable --now minecraft
sudo systemctl status minecraft
sudo journalctl -u minecraft -f # живі логи
Тепер він стартує при завантаженні, рестартує при падінні, а логи йдуть у journald.
5. Відкрити порт у фаєрволі
Minecraft за замовчуванням слухає TCP 25565. Відкриваємо лише його:
sudo ufw allow 25565/tcp
sudo ufw enable
Дайте друзям IP сервера (і :25565, якщо міняли порт). Не відкривайте нічого зайвого — весь сенс власної машини в тому, що ви вирішуєте, що доступно.
6. Робити бекап світу
Той пункт, що пропускають до дня, коли шкодують. Простий скрипт:
#!/bin/bash
cd /opt/minecraft/server
TS=$(date +%Y%m%d-%H%M)
tar czf /opt/minecraft/backups/world-$TS.tar.gz world world_nether world_the_end
Запускайте з крона і — ось важлива половина — копіюйте архів із сервера, в обʼєктне сховище або на іншу машину. Бекап на тому ж диску, що і світ, помре разом із диском. Якщо світ вам дорогий, виконайте save-off і save-all у консолі сервера перед tar, щоб не зняти знімок у момент запису.
Це все цілком
Java, Paper, налаштований конфіг, сервіс systemd з авто-рестартом, порт у фаєрволі і бекапи, що живуть в іншому місці. Це сервер Minecraft, що поводиться як сервер.
Якщо машини ще немає: оберіть тариф — Small ($8) для невеликої компанії, Medium ($12), якщо тиснете до десяти гравців, — оплатіть у USDC або USDT (без KYC, без документів), і root буде приблизно за 60 секунд. Далі йдіть за цією сторінкою. І чесне нагадування востаннє: це вірне налаштування для ванільного або Paper-сервера з друзями. Важкому модпаку для великої спільноти потрібне інше залізо, і ми волітимемо, щоб ви почули це від нас першими.