Table of content

Обзор

Roliserver предназначен для размещения нескольких игр на одном компьютере. Сообщества игроков в ролевые игры могут предоставлять эту услугу своим пользователям.

Первый запуск

Настоятельно рекомендуется запускать roliserver следующим образом:

roliserver -p config.conf

Создаётся пустой файл конфигурации с именем «config.conf» (при необходимости имя можно изменить).

:::ini
[General]
AdminPassword=@Invalid()
ChannelCount=@Invalid()
ConnectionMax=@Invalid()  
IpBan=@Invalid()
IpMode=@Invalid()
IpRange=@Invalid()
LogLevel=@Invalid()
DeepInspectionLog=@Invalid()
ThreadCount=@Invalid()
TimeEnd=@Invalid()
TimeStart=@Invalid()
TimeToRetry=@Invalid()
password=@Invalid()
port=@Invalid()
TryCount=@Invalid()
MaxMemorySize=@Invalid()

Измените значения в соответствии с потребностями. Порядок элементов не важен.

Файл конфигурации

Пароль

Задайте пароль для доступа к серверу. Каждый пароль, хранящийся в этом файле, должен быть зашифрован методом Sha3_512. Не стоит беспокоиться — это совсем несложно.

Сначала запустите сервер с параметром -g.

$ roliserver -g

Запрашивает ввод пароля, после чего выводит зашифрованную версию пароля.

P9d63VIxEvincVCutARz0W86GFFX36h0zWEIUomzusZmnv3krtcEsXzZWKKXXv6Ivag+8fR2a7tRWoaaIu3L1w==

Затем скопируйте этот ключ и вставьте его в файл.

Rolisteam предоставляет графический инструмент для создания пароля с помощью Sha3_512.

Внимание: убедитесь, что сервер запускается с Qt 5.9 или более новой версией. В старых версиях Qt алгоритм Sha3_512 работает неправильно. Возможно, возникнут сложности с подключением к серверу.

Порт

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

ConnectionMax

Задайте максимальное количество клиентов, которое допускает сервер.

ChannelCount

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

Пароль администратора

Задайте пароль для защиты аутентификации в качестве администратора сервера. Пароль по-прежнему шифруется методом Sha3_512.

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

LogLevel

Уровень журнала — числовое значение, определяющее степень детализации записываемых сведений.

Возможные значения:

  • 1 : Ошибка
  • 2 : Отладка
  • 3 : Предупреждение
  • 4 : Информация

На уровне ошибок сервер выводит только сообщения об ошибках.
Уровень отладки полезен при доработке сервера, добавлении новых возможностей и т. п.
Сообщения уровня предупреждений показывают сведения о неожиданных данных или поведении.
Наконец, уровень сведений содержит подробности о работе сервера.

Перед отправкой сообщения об ошибке рекомендуется запустить приложение с уровнем журнала «информация», чтобы предоставить команде как можно больше сведений.

DeepInspectionLog

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

Возможные значения:

  • true
  • false

LogFile

Задаёт путь для записи журнала.

Пример

LogFile=/var/log/roliserver.log

ThreadCount

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

TimeToRetry

Время ожидания (в миллисекундах) между двумя попытками прослушивания порта.

Сервер прослушивает все подключения на порту, указанном в этом файле. В редких случаях этот шаг может завершиться неудачно — вероятно, потому что другой сервер уже прослушивает этот порт. Поэтому roliserver повторит попытку несколько раз.

TryCount

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

TimeStart

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

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

Примеры: 8 вечера

20:00

6 утра

06:00

TimeEnd

Задайте время, когда сервер перестаёт принимать подключения.

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

Примеры: 8 вечера

20:00

6 утра

06:00

Внимание: если в вашей стране применяется переход на летнее время (или любой другой перевод часов), убедитесь, что продолжительность сеанса превышает величину сдвига времени. В противном случае в день перевода часов возможны ошибки в расчётах.

IpBan

Задайте список заблокированных IP-адресов.

Примеры: список с 3 адресами

80.80.80.80,127.9.9.1,10.10.10.10

IpMode

ipv4, ipv6 или оба.

Пока не используется.

MaxMemorySize

Задайте максимальный размер данных, который должен хранить сервер. При достижении предела все каналы сбрасывают свои данные.

Пример:

:::ini
MaxMemorySize=8G  #Define the size at 8 Gibibyte
MaxMemorySize=8M  #Define the size at 8 Mebibyte

Пример работающего файла .conf:

AdminPassword=tnjOmGIvYntbNcoej2VvG9M1RdJCtZ8BWjHek4r6OvvmhThbjjzJ/zfYwq+G7r/TGe7WWr20vkGBzULuTzcPYQ==
ChannelCount=8
ConnectionMax=50
IpBan=@Invalid()
IpMode=@Invalid()
IpRange=@Invalid()
LogLevel=3
LogFile=
ServerPassword=tnjOmGIvYntbNcoej2VvG9M1RdJCtZ8BWjHek4r6OvvmhThbjjzJ/zfYwq+G7r/TGe7WWr20vkGBzULuTzcPYQ==
ThreadCount=8
TimeEnd=@Invalid()
TimeStart=@Invalid()
TimeToRetry=100
TryCount=10
port=6660

Будет использоваться пароль 0000. Рекомендуется создать собственный пароль с помощью инструмента создания паролей, доступного в клиенте Rolisteam.

Развёртывание с помощью SystemD

Создадим файл службы:

$ sudo touch /etc/systemd/system/roliserver.service

Затем скопируйте это и вставьте в roliserver.service:

:::ini
[Unit]
Description=Rolisteam Server
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=#your_username#
ExecStart=/usr/local/bin/roliserver -c /home/#your_username#/.roliserver.conf

[Install]
WantedBy=multi-user.target

Затем включите и запустите службу:

:::shell
$ sudo systemctl enable roliserver.service
$ sudo systemctl start roliserver.service