Konfiguration

Server

Wir verwenden YAML für die Konfiguration von Strawberry Chat. Damit du nicht die ganze Konfiguration selber schreiben musst, haben wir eine Beispielkonfiguration (Legacy/Stable/Main) Allerdings um vollständig zu verstehen, welcher Wert was konfiguriert, kannst du dir diese Tabelle anschauen:

Server-KonfigurationErklärung
addressDie IP-Adresse, wo man den Server mit erreichen kann (z.B. 192.168.0.157)
portDer zugehörige und nötige Port (z.B. 49200 —> 192.168.0.157:49200)
nameDer Name des Chat-Servers (Server Name) (z.B. My personal Server!)
descriptionEine Beschreibung über den Chat-Server (z.B. This is my personal chat server)
edition_keyEin nicht-entwickeltes Argument zur Konfiguration einer Edition
update_channelDer Update-Kanal des Chat Servers (stable, dev, canary)
config_verVersions-Wert der Konfiguration. Sollte nicht geändert werden.
Flag-KonfigurationErklärung
enable_messagesAktiviert oder deaktiviert das loggen von Nutzern-Nachrichten (true, false)
enable_queueAktiviert oder deaktiviert die Warteschlange (true, false)
max_message_lengthMaximale Länge einer Nachricht (z.B. 256)
max_usersMaximale Anzahl der Online-Nutzern (z.B. 32)
max_registered_usersMaximale Anzahl der registrierten Nutzern (z.B. 64)
debug_modeAktiviert oder deaktiviert den Debug-Mode. Nützlich um Fehler einfacher nachzuverfolgen (true, false)
online_modeAktiviert oder deaktiviert den Online-Mode. Dies deaktiviert jegliche Funktionen der Strawberry API (Nicht empfohlen) (true, false)
admins_wait_queueAktiviert oder deaktiviert ob Admins in der Warteschlange warten müssen. (true, false)
bots_wait_queueAktiviert oder deaktiviert ob Bots in der Warteschlange warten müssen. (true, false)
special_messagesAktiviert oder deaktiviert b e s o n d e r e Nachrichten (true, false)
Sicherheits-KonfigurationErklärung
require_signingAktiviert oder deaktiviert das benötigen eines verifizierten Clients. Dieses Feature ist allerdings noch nicht verfügbar (true, false)
signing_keyDer Signierungs-Key für die verifizierten Clients
banned_ipsEine Liste an gebannten IP-Adressen (z.B. [192.168.0.157])
Datenbank-KonfigurationErklärung
driverDer verwendete Treiber für die Datenbankverwaltung (sqlite, mysql)
check_same_threadAktiviert oder deaktiviert die Erkennung ob etwas im gleichen Thread abläuft (true, false)
hostMySQL Datenbank Host
portMySQL Datenbank Port
userMySQL Datenbank Nutzername
passwordMySQL Datenbank Nutzerpasswort
database_nameMySQL Datenbankname
database_tableMySQL Datenbanktabelle

Einige Argumente sind nur für v1.9.0 (v1.9.0-vacakes-std_stmbv2) verfügbar.

Darunter zählen: enable_queue, max_users, max_registered_users, admins_wait_queue, bots_wait_queue, special_messages

Einige Argumente sind nur für v1.10.0 (v1.10.0-vacakes-std_stmbv2) verfügbar.

Darunter zählen: banned_ips, driver, check_same_thread, host, port, user, password, database_name, database_table


Client

Auch für unseren Client verwenden wir YAML für die Konfiguration. Damit du nicht die ganze Konfiguration selber schreiben musst, haben wir eine Beispielkonfiguration (Legacy/Stable/Main) Allerdings um vollständig zu verstehen, welcher Wert was konfiguriert, kannst du dir diese Tabelle anschauen:

Client-KonfigurationErklärung
languageDie Sprache des Clients (de_DE, en_US)
update_channelDer Update-Kanal des Clients (stable, dev, canary)
detect_same_system_messagesAktiviert oder deaktiviert die Erkennung von gleichen Systemnachrichten (true, false)
config_verVersions-Wert der Konfiguration. Sollte nicht geändert werden.
enable_notificationsAktiviert oder deaktiviert die Chat-Benachrichtung (true, false)

Das Argument enable_notifications ist nur für v2.6.0 oder höher verfügbar.


Networking

Dieser Konfigurationsteil bezieht sich auf das Netzwerkverhalten des Clients. Der folgende Code-Block funktioniert nur ab v2.6.0

networking:
  online_mode: false
  keep_alive: true
  latency_mode: false
  latency_mode_time: 1
Networking-KonfigurationErklärung
online_modeAktiviert oder deaktiviert den Online-Mode. Dies deaktiviert jegliche Funktionen der Strawberry API (Nicht empfohlen) (true, false)
keep_aliveAktiviert oder deaktiviert Keep-Alive Pings zum Server. Das deaktivieren führt dazu das du nach einer bestimmten Zeit vom Server disconnected wirst. (true, false)
latency_modeAktiviert oder deaktiviert den Latenz-Modus. Dieser dient dazu bei langsamen Verbindung weiterhin Stabilität zu bieten (true, false)
latency_mode_timeDie Zeit zwischen bestimmten “Latency-Events” (z.B. 1, 2, 0.5)

Einige Argumente sind nur für v2.6.0 verfügbar. Darunter zählen: latency_mode, latency_mode_time


Autoserver

Dieser Konfigurationsteil bezieht sich auf das Autoserver-Verhalten des Clients.

autoserver:
  enabled: false
  server_id: 2
Autoserver-KonfigurationErklärung
enabledAktiviert oder deaktiviert Autoserver (Das automatische verbinden mit einem Server beim Start des Clients) (true, false)
server_idServer-ID des Servers (z.B. 1, 2)

Vorkonfigurierte Server

Dieser Konfigurationsteil bezieht sich auf Vorkonfigurierte Server. Eine Beispielkonfiguration könnte folgendermaßen aufgebaut sein:

2: 
name: localhost
address: 127.0.0.1
port: 8080
type: Local Development Server
autologin: true
compatibility_mode: false
credentials:
    username: username
    password: password
Server-KonfigurationErklärung
nameName des Servers (z.B. My server)
addressIP-Adresse des Servers (z.B. 127.0.0.1)
portPort des Servers (z.B. 8080)
typeEine eigene Typenbeschreibung des Servers (z.B. programming, school)
autologinAktiviert oder deaktiviert Autologin für diesen Server (true, false)
compatibility_modeAktiviert oder deaktiviert den Kompatiblitätsmodus für diesen Server (true, false)
credentials/usernameDer Nutzername der für Autologin benötigt wird (z.B. user)
credentials/usernameDas Passwort das für Autologin benötigt wird (z.B. password)

Das Argument compatibility_mode ist nur für v2.5.0 oder höher verfügbar.