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