Table of content

Visão geral

O Roliserver é dedicado a hospedar vários jogos no mesmo computador. Comunidades de jogadores de RPG podem oferecer esse serviço aos seus usuários.

Primeira execução

Recomendamos enfaticamente que inicie o roliserver da seguinte forma:

roliserver -p config.conf

Ele gera um arquivo de configuração vazio chamado "config.conf" (altere o nome se desejar).

:::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()

Altere o valor de acordo com suas necessidades. A ordem dos elementos não é importante.

Arquivo de configuração

Password

Define uma senha para acessar o servidor. Todas as senhas armazenadas neste arquivo devem ser criptografadas com o método Sha3_512. Não se preocupe, é muito fácil de fazer.

primeiro, inicie o servidor com o parâmetro -g.

$ roliserver -g

Ele irá pedir que você digite a senha. Então, imprimirá a versão criptografada da sua senha.

P9d63VIxEvincVCutARz0W86GFFX36h0zWEIUomzusZmnv3krtcEsXzZWKKXXv6Ivag+8fR2a7tRWoaaIu3L1w==

Em seguida, você pode copiar e colar essa chave no seu arquivo.

O Rolisteam oferece uma ferramenta gráfica para gerar senhas com Sha3_512.

Aviso: certifique-se de executar o servidor com Qt 5.9 ou superior. Sha3_512 em versões mais antigas do Qt não funciona corretamente. Você pode ter dificuldades para se conectar ao servidor.

Port

Define a porta de conexão. A porta usual é 6660, mas pode ser alterada.

ConnectionMax

Define o número máximo de clientes que o servidor permite.

ChannelCount

Define o número de canais na primeira inicialização do servidor.
Basicamente, isso define o número de jogos que seu servidor pode aceitar ao mesmo tempo.

Admin Password

Defina uma senha para proteger a autenticação como administrador do servidor. A senha ainda está criptografada em Sha3_512.

O administrador pode expulsar usuários, adicionar/excluir canais e muitas outras coisas.

LogLevel

O nível de registro é um valor numérico que define o nível de detalhes que você deseja gerar.

Valores possíveis:

  • 1 : Erro
  • 2 : Depuração
  • 3 : Avisos
  • 4 : Informações

No nível de Erro, o servidor exibe apenas a mensagem de erro.
O nível de Depuração é útil quando você deseja aprimorar o servidor, adicionar recursos e assim por diante.
Mensagens de Aviso exibem informações sobre dados ou comportamentos inesperados.
Por fim, o nível de Informações fornece detalhes sobre o que o servidor está fazendo.

Antes de enviar uma solicitação de bug, é uma boa prática executar o aplicativo com o nível de informações definido como nível de log para fornecer à equipe o máximo de informações possível.

DeepInspectionLog

Registra todos os eventos do servidor. Ativar esta opção pode tornar o servidor mais lento.

Valores possíveis:

  • true
  • false

LogFile

Define o caminho onde os registros de log serão gravados.

Exemplo

LogFile=/var/log/roliserver.log

ThreadCount

Define o número máximo de threads que o servidor pode usar.

TimeToRetry

Tempo de espera (em milissegundos) entre duas tentativas de escuta da porta.

O servidor escuta qualquer conexão na porta definida neste arquivo. Em raras ocasiões, esta etapa pode falhar. Provavelmente, porque outro servidor já está escutando esta porta. Portanto, o roliserver tentará escutar várias vezes.

TryCount

Defina quantas vezes o servidor tentará escutar a porta. Se esse número for atingido, o servidor será encerrado com um código de erro.

TimeStart

Define o horário do dia em que o servidor permite a conexão.

Deve ser escrito como: hh:mm. As horas devem ser definidas por dois números, bem como os minutos.

Exemplos: 8pm

20:00

6am

06:00

TimeEnd

Define o horário em que o servidor para de aceitar solicitações.

Deve ser escrito como: hh:mm. As horas devem ser definidas por dois números, bem como os minutos.

Exemplos: 8pm

20:00

6am

06:00

IpBan

Define uma lista de endereços IP proibidos.

Exemplos: Uma lista com 3 endereços

80.80.80.80,127.9.9.1,10.10.10.10

IpMode

ipv4 ou ipv6 ou ambos.

Ainda não está sendo usado.

MaxMemorySize

Define o valor do tamanho máximo que o servidor deve armazenar. Quando o limite for atingido, todos os canais descartarão seus dados.

Exemplo:

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

Exemplo de arquivo .conf funcional:

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

Isso usará 0000 como senha. Recomenda-se que você crie a sua própria com o utilitário de criação de senhas disponível no cliente rolisteam.

Implantação no SystemD

Vamos criar nosso arquivo de serviço

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

Em seguida, copie e cole isto em 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

Em seguida, habilite e inicie o serviço:

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