Project Zomboid

Project Zomboid

Not enough ratings
Создание выделенного сервера Project Zomboid | Linux Server
By Sornodod
Руководство по создания выделенного сервера Project Zomboid на Linux Debian.
   
Award
Favorite
Favorited
Unfavorite
Введение
Руководство рассчитано на немного продвинутых пользователей, так как для работы выделенного сервера потребуется либо своё железо, либо VPS.
Как арендовать VPS-сервер пояснять здесь пожалуй не буду, так как в интернете полно статей на этот счёт. Но если вам сильно нужно, то пожалуйста отпишите это в комментариях и я дополню "Шаг №1" данного руководства.
Ну и аналогично по остальным пунткам. Если вам что-то не понятно из руководства - отпишите пожалуйста в комментарии и я отвечу на ваш вопрос с последующим дополнением руководства.
Шаг №1. VPS
Нам нужен VPS сервер с Debian на борту.
Системные требования сервера:

  • 6GB RAM
  • 2 CPU
  • 40 GB SSD

Далее начинаем работать по VNC сервера. Так как мы редко сюда будет заглядывать и в SSH подключении необходимости нет.
Шаг №2. Первичная настройка сервера
Речь сейчас пойдёт не про настройку Project Zomboid. А про настройку самого VPS.
Обновление системы:
sudo apt-get update && apt-get upgrade
Создание swap раздела.
Создание файла размером 2 ГБ:
sudo fallocate -l 2G /swapfile
Установка прав доступа (только root)
sudo chmod 600 /swapfile
Форматирование файла как swap-раздел
sudo mkswap /swapfile
Активация swap-файла
sudo swapon /swapfile
Устанавливаем текстовый редактор nano
apt install nano
Открываем через nano fstab
sudo nano /etc/fstab
Добавляем в конце строку
/swapfile none swap sw 0 0
Готово. SWAP раздел создан.
Шаг №3. Установка STEAMCDM
dpkg --add-architecture i386
sudo apt install screen libsdl2-2.0-0:i386
sudo apt-get update && apt-get upgrade
sudo adduser pzuser
Задаём пароль для пользователя pzuser И даём ему возможность пользоваться sudo:
usermod -aG sudo pzuser
Переходим в учётку pzuser:
su - pzuser
Создаём раздел для сервера PZ:
mkdir steamcmd pzserver
И переходим в него:
cd steamcmd
И вот теперь устанавливаем SteamCMD:
wget [https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz](https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz)
tar -xvzf steamcmd_linux.tar.gz
./steamcmd.sh
force_install_dir /home/pzuser/pzserver/
login anonymous
app_update 380870 validate
exit
Шаг №4. Проверка запуска
cd
cd pzserver
./start-server.sh
При первом запуске сервера скрипт попросит нас ввести пароль от админа. Придумываем пароль.

Пример того что сервер запустился:

Далее идём в Project Zomboid, в вкладку "Сетевая". И заполняем поля:
  • Имя сервера: любое. Абсолютно не имеет значения;
  • IP: ip нашего VPS сервера;
  • Локальный IP: не заполняем;
  • Порт: если мы его не меняли, то по дефолту будет 16261;
  • Пароль сервера: по дефолту его нет;
  • Описание: любое. Не имеет значения;
  • Имя: это имя нашего персонажа;
  • Пароль: это пароль от персонажа;
  • Использовать Steam Relay: галочку можно не ставить.
Нажимаем "Сохранить".
Как войти из под админа?
Помните мы ранее пароль задавали от админа?
Так вот, в поле "Имя" вводим "admin", в поле "Пароль" вводим ранее заданный в консоли пароль. Таким образом можем войти из под админа.

Что бы выключить сервер пока что отрабатываем в терминале Ctrl+C. В последующем шаге мы с вам сделаем данный процесс не только фоновым, но и запустим его в автозапуск на всякий случай, и даже сможем в будущем удобно им управлять через службу.
Шаг №5. Автозапуск
Как только мы убедились что сервер запустился то можно его пустить в автозапуск путём создания службы.
sudo nano /etc/systemd/system/pzserver.service
Далее вписываем туда вот такое содержимое:
[Unit]
Description=Project Zomboid Server
After=network.target

[Service]
Type=simple
User=pzuser
WorkingDirectory=/home/pzuser/pzserver
ExecStart=/home/pzuser/pzserver/start-server.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target
Перезапускаем systemd-демона:
sudo systemctl daemon-reload
Включаем в автозапуск всё это дело:
systemctl enable pzserver.service
Запускаем службу:
systemctl start pzserver.service
Логи можно посмотреть так в реальном времени:
journalctl -u pzserver.service -f

В конечном счёте мы теперь можем удобно управлять сервером Project Zomboid при помощи следующих команд:
Просмотр статуса сервера:
systemctl status pzserver.service
Запуск сервера:
systemctl start pzserver.service
Остановка сервера:
systemctl stop pzserver.service
Перезапуск сервера:
systemctl restart pzserver.service

Как ставить моды
На самом деле всё просто.
Допустим мы хотим добавить мод на Автобус - Autotsar Tuning Atelier - Bus [TUNING 2.0]
Спускаемся в самый низ странички мода пока не увидим заветные строки:

  • Workshop ID: 2592358528
  • Mod ID: ATA_Bus
Запомнили эти IDшники и полезли менять конфиг сервера:
nano ~/Zomboid/Server/servertest.ini
Ищем строки "Mods=" и "WorkshopItems=" и добавляем туда ID скопированные выше. Должно получится так:
Mods=ATA_Bus
WorkshopItems=2592358528

Всё. Перезапускаем сервер и готово. Сервер сам скачает и установит моды. Перезапустить сервер можно так:
systemctl restart pzserver.service
Послесловие
Так же могу описать как реализовать Telegram-бота для управления сервером. Так как не всегда удобно прыгать на VPS. Если это кому-нибудь будет необходимо, то просьба отписать в комментарии.
Бот имеет в себе всего парочку Inline-кнопок и сообщения администратору (вам) о том, кто из ваших друзей включил\выключил\перезагрузил сервер.