Table of content

Panoramica

Roliserver è dedicato a ospitare diversi giochi sullo stesso computer. Le comunità dei giocatori RPG possono offrire questo servizio ai loro utenti.

Primo avvio

Raccomandiamo caldamente di avviare roliserver in questo modo:

roliserver -p config.conf

Genera un file di configurazione vuoto chiamato «config.conf» (cambia il nome, se vuoi).

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

Cambia i valori in base alle tue esigenze. L'ordine degli elementi non è importante.

File di configurazione

Password

Definisci la password di accesso al server. Ogni password memorizzata in questo file deve essere cifrata col metodo Sha3_512. Non preoccuparti, è molto facile da fare.

Per prima cosa, avvia il server col parametro -g.

$ roliserver -g

Ti chiede di digitare la password. Quindi stampa la versione cifrata della tua password.

P9d63VIxEvincVCutARz0W86GFFX36h0zWEIUomzusZmnv3krtcEsXzZWKKXXv6Ivag+8fR2a7tRWoaaIu3L1w==

Puoi copiare/incollare questa chiave nel tuo file.

Rolisteam offre uno strumento grafico per generare la password con Sha3_512.

Attenzione: accertati di eseguire il server con Qt5.9 o superiore. Sha3_512 non funziona correttamente sulle versioni precedenti di Qt. Potresti riscontrare difficoltà di collegamento al server.

Port

Definisce la porta di connessione. La porta standard è la 6660 ma è possibile cambiarla.

ConnectionMax

Definisce il numero massimo di client che il server può accettare.

ChannelCount

Definisce il numero di canali al primo avvio del server.
Fondamentalmente, definisce il numero di giochi che il tuo server è in grado di ospitare in contemporanea.

Password dell'amministratore

Definisce la password per proteggere l'autenticazione come amministratore del server. La password è ancora cifrata in Sha3_512.

L'amministratore può espellere utenti, aggiungere/eliminare canali e molte altre cose.

LogLevel

È un valore espresso in numeri che definisce il livello voluto di dettagli del registro.

Valori possibili:

  • 1 : Errore
  • 2 : Debug
  • 3 : Avviso
  • 4 : Informazioni

Al livello Errore, il server mostra solo messaggi di errore.
Il livello Debug è utile quando vuoi migliorare il server, aggiungere funzionalità e altro ancora.
Il livello Avviso mostra un messaggio di avviso relativo a dati o comportamenti inattesi.
Infine, il livello Informazioni fornisce i dettagli sulle operazioni che il server sta eseguendo.

Prima di inviare una segnalazione di errore, è buona pratica eseguire l'applicazione col livello Informazioni (4) in modo da fornire alla squadra quante più informazioni possibili.

DeepInspectionLog

Registra ogni evento del server. L'attivazione di questa opzione può rallentare un po' il server.

Valori possibili:

  • vero
  • falso

LogFile

Imposta il percorso in cui viene scritto il registro.

Esempio

LogFile=/var/log/roliserver.log

ThreadCount

Definisce il totale di thread massimi che il server può utilizzare.

TimeToRetry

Tempo di attesa (in millisecondi) tra due tentativi di ascolto della porta.

Il server ascolta qualsiasi connessione sulla porta definita in questo file. In rare occasioni, questo passaggio potrebbe non riuscire. Probabilmente perché un altro server è in ascolto di questa porta. Roliserver quindi prova più volte.

TryCount

Definisce quante volte il server tenterà di ascoltare la porta. Se questo numero viene raggiunto, il server esce in stato di errore.

TimeStart

Definisce il tempo giornaliero in cui il server permette la connessione.

Va scritto in questo modo: hh:mm - Le ore vanno indicate con due cifre, come i minuti.

Esempi: 8pm

20:00

6am

06:00

TimeEnd

Definisce l'ora in cui il server smette di accettare.

Va scritto in questo modo: hh:mm - Le ore vanno indicate con due cifre, come i minuti.

Esempi: 8pm

20:00

6am

06:00

IpBan

Definisce un elenco di indirizzi IP bloccati.

Esempio: un elenco con tre indirizzi

80.80.80.80,127.9.9.1,10.10.10.10

IpMode

ipv4 o ipv6, o entrambi.

Non ancora utilizzato.

MaxMemorySize

Imposta il valore della dimensione massima che il server deve memorizzare. Raggiunto questo limite, tutti i canali svuotano i loro dati.

Esempio:

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

Esempio di file .conf funzionante:

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

Questa configurazione utilizzerà 0000 come password. Ti consigliamo di creare la tua password con il programmino di creazione password presente nel client Rolisteam.

Distribuzione in SystemD

Creiamo il nostro file del servizio

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

Quindi copiamolo e incolliamolo in 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

Poi abilitiamo e avviamo il servizio:

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