Share:

Установка и настройка выделенного сервера Valheim на Ubuntu 20.04

YPermitinвDevOps

2022-06-14

#DevOps

#Valheim Server

#Valheim

#games

#*.nix

#Ubuntu

#игры

Настройка портов

Должны быть открыты порты по UDP:

2456 2457 2458 27060

При использовании UFW (Uncomplicated Firewall) делаем так:

sudo ufw allow 2456/udp
sudo ufw allow 2457/udp
sudo ufw allow 2458/udp
sudo ufw allow 27060/udp

Подготовка операционной системы

Некоторые шаги для общей настройки сервера.

Настройка часового пояса

Первым делом проверяем текущую дату и время, а также часовой пояс на сервере.

timedatectl

При необходимости меняем часовой пояс, чтобы он больше подходил для клиентов сервера.

sudo timedatectl set-timezone Europe/Moscow

Список всех доступных часовых поясов смотрим здесь так.

timedatectl list-timezones

Установка обновлений

Тут все стандартно. Проверяем наличие обновлений пакетов и устанавливаем обновления.

sudo apt update
sudo apt upgrade

Установка Valheim Server

Для установки воспользуемся проектом LinuxGSM. Сначала нам нужно установить все необходимые компоненты.

sudo dpkg --add-architecture i386; sudo apt update; sudo apt install curl wget file tar bzip2 gzip unzip bsdmainutils python util-linux ca-certificates binutils bc jq tmux netcat lib32gcc1 lib32stdc++6 steamcmd
sudo apt remove --purge nodejs npm
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt update && sudo apt install -y nodejs
npm install gamedig -g
sudo npm install gamedig -g
sudo npm update -g
sudo npm list -g gamedig

Переходим в каталог пользователя, от которого будет работать сервер, и создаем каталог для файлов приложения.

cd /home/<username>
mkdir linuxgsm
cd linuxgsm

После этого запускаем непосредственно установку сервера Valheim.

wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh vhserver
./vhserver install

Готово!

Настройка сервера Valheim

Переходим в каталог с файлами конфигурации сервера.

cd ~/lgsm/config-lgsm/vhserver
ls

Делаем бэкап текущего файла конфигурации и заменяем конфигурацию стандартной.

mv common.cfg common.cfg.old
cp _default.cfg common.cfg

Далее открываем файл конфигурации в любимом редакторе и меняем его под себя.

mcedit common.cfg

Настройки, которые нужно поменять в первую очередь:

  • servername - имя сервера.
  • serverpassword - пароль для входа на сервер.
  • port - порт сервера. По умолчанию 2456.
  • gameworld - имя игрового мира. По умолчанию совпадает с именем сервера.
  • public - поставить 1, если сервер должен быть виден сообществу.

И некоторые необязательные настройки:

  • stats - позволить собирать статистику использования проекту LinuxGSM.
  • updateonstart - обновление сервера при старте. Рекомендую включить.
  • Alert settings - настройка уведомлений о событиях сервера, в т.ч. в Телеграм. Смотрите официальную документацию по каждому каналу доставки сообщений.

Также обратить внимание на настройки бэкапирования. Подробная информация в официальной документации.

Настройка запуска сервера

Для автоматического запуска игрового сервера воспользуемся возможностями systemd.

sudo mcedit /etc/systemd/system/vhserver.service

Файл должен иметь примерно такое содержимое (поправьте пути к файлам искриптам).

[Unit]
Description=LinuxGSM Valheim Server
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
User=<user>
WorkingDirectory=/home/<user>/linuxgsm
RemainAfterExit=yes
ExecStart=/home/<user>/linuxgsm/vhserver start
ExecStop=/home/<user>/linuxgsm/vhserver stop
Restart=no
[Install]
WantedBy=multi-user.target

Замените нужным значением, т.е. именем пользователя, от которого будет работать игровой сервер.

После этого обновляем настройки systemd и включаем службу.

sudo systemctl daemon-reload
sudo systemctl enable vhserver.service

Теперь сервер запускается автоматически!

Бэкапирование

Для выполнения бэкапа сервера достаточно выполнить команду.

/home/user/linuxgsm/vhserver backup

Сервер будет остановлен и все файлы будут сохранены в архив по адресу “/home/user/linuxgsm/lgsm/backup”. Далее можно отправлять их в облако для надежности.

Есть нюанс! По умолчанию файлы игрокового мира находятся вне каталога сервера Valheim. Если сам сервер мы установили в “/home/user/linuxgsm”, то файлы игрового мира находятся в “/home/user/.config/unity3d/IronGate/Valheim/worlds”.

Рекомендую остановить сервер, переместить каталог “/home/user/.config/unity3d” в “/home/user/linuxgsm/unity3d”, а в файле “/home/user/linuxgsm/lgsm/config-lgsm/vhserver/common.cfg” изменить параметр “savedir” на новое значение.

После запустить сервер. Тогда бэкап игрового сервера будет включать и файлы игрового мира.

Уведомления о действиях на сервере

Можно настроить уведомления в Telegram-канал о действиях на сервере:

  • Вход/выход пользователя на сервер
  • Респаун игроков
  • Смерть игроков
  • Событие общего сна на сервере, когда ночное время пропускается.
  • Случайные события.
  • Запуск сервера
  • Остановка сервера

Для этого воспользуйтесь проектом valheim-notify от Whiskey24.

Команды сервера

Только администраторы сервера могут запускать эти команды.

CommandArgsDescription
help Список всех доступных команд
kickname/ip/userIDОтключить пользователя
banname/ip/userIDЗабанить пользователя
unban/ip/userIDОтменить бан пользователя
banned Список забаненых пользователей
ping Проверить пинг сервера для диагностики задержек
info Системная информация

Полезные ссылки

Y

YPermitin

.NET, TSQL, DevOps, 1C:Enterprise

Developer, just developer.

Поделиться

Другие статьи

Развертывание ASP.NET Core приложений на Ubuntu Linux
Развертывание ASP.NET Core приложений на Ubuntu Linux
Настройка обслуживания PostgreSQL. Основное и простое
Настройка обслуживания PostgreSQL. Основное и простое
Счетчики производительности Windows + PowerShell
Счетчики производительности Windows + PowerShell

Все статьи от автора: YPermitin

Copyright © 2024 Убежище инженера