mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2025-12-12 15:49:28 -08:00
* Some improvements to Servatice network code 1. fix crash on fuzzy connection (tcp server only) 2. ensure websockets are parent()ed to avoid leaking them 3. quick catch disconnect()ed sockets instead of waiting for a socket error to happen 4. supporto mulltiple connection pools on the websocket server; they are still bound to the same thread due to a qt5 limitation.
414 lines
17 KiB
Plaintext
414 lines
17 KiB
Plaintext
; Servatrice configuration file
|
|
;
|
|
; This is the main configuration file for Servatrice; while using a configuration is not mandatory,
|
|
; you may want to customize some aspects of your servatrice instance, like its name, port or the way
|
|
; users can authenticate to the server.
|
|
;
|
|
; Can be passed to servatrice with --config /path/to/servatrice.ini
|
|
|
|
[server]
|
|
|
|
; This is the name that servatrice exposes to the users; the default value is pretty boring
|
|
name="My Cockatrice server"
|
|
|
|
; Multiple servatrice servers can run on the same host using the same database; each server instance
|
|
; must have a different id; the default id is 1
|
|
id=1
|
|
|
|
; The IP address servatrice will listen on for clients; defaults to "any" to listen on all the interfaces,
|
|
; a specific IPv4/v6 addresses can be used, eg for localhost-only 127.0.0.1 for IPv4 or ::1 for IPv6.
|
|
|
|
host=any
|
|
|
|
; The TCP port number servatrice will listen on for clients; default is 4747
|
|
port=4747
|
|
|
|
; Servatrice can scale up to serve big number of users using more than one parallel thread of execution;
|
|
; If your server is hosting a lot of players and they frequently report of being unable to login or
|
|
; long delays (lag), you may want to try increasing this value; default is 1.
|
|
; Set to 0 to disable the tcp server.
|
|
number_pools=1
|
|
|
|
; Servatrice can listen for clients on websockets, too. Multiple connection pools are available but
|
|
; unfortunately, due to a Qt limitation, they must run in the same execution thread.
|
|
; Set to 0 to disable the websocket server.
|
|
websocket_number_pools=1
|
|
|
|
; The IP address servatrice will listen on for websockets clients; defaults to "any"
|
|
websocket_host=any
|
|
|
|
; The TCP port number servatrice will listen on for websockets clients; default is 4748
|
|
websocket_port=4748
|
|
|
|
; When database is enabled, servatrice writes the server status in the "update" database table; this
|
|
; setting defines every how many milliseconds servatrice will update its status; default is 15000 (15 secs)
|
|
statusupdate=15000
|
|
|
|
; Do you want servatrice to write important events and errors to a logfile? Default is 1 (yes).
|
|
writelog=1
|
|
|
|
; Choose a name for the log file, if enabled; you can specify an absolute path or a path relative to
|
|
; the servatrice executable; the default file name is server.log (in the same path as servatrice)
|
|
; Note: When running servatrice under windows you will need to use double backslashes between folder locations
|
|
; [ex: C:\\Temp\\server.log ]
|
|
logfile=server.log
|
|
|
|
; You may want to log only certain messages in the logfile. The default log level is extremely verbose.
|
|
; This setting should contain a comma-separated list of strings that will be selectively logged.
|
|
; All other lines will be excluded from the log. Default is empty; example: "Registration,_Login,foobar"
|
|
logfilters=""
|
|
|
|
; Set the time interval in seconds that servatrice will use to communicate with each connected client
|
|
; to verify the client has not timed out. Defaults is 1 seconds
|
|
clientkeepalive=1
|
|
|
|
; Maximum time in seconds a player can stay inactive with there client not even responding to pings, before is
|
|
; considered disconnected; default is 15
|
|
max_player_inactivity_time=15
|
|
|
|
; More modern clients generate client IDs based on specific client side information. Enable this option to
|
|
; require that clients report the client ID in order to log into the server. Default is false
|
|
requireclientid=false
|
|
|
|
; You can limit the types of clients that connect to the server by requiring different features be available
|
|
; on the client. This setting can contain a comma-seperated list of features. if any of the features
|
|
; listed in this line are not available on the client the client will be denied access to the server upon
|
|
; attempting to log in. Example: "client_id,client_ver,websocket"
|
|
requiredfeatures=""
|
|
|
|
; You can define custom warnings that users are sent when the moderation staff uses the right client warn user
|
|
; menu option. This list is comma seperated that each item will appear in the drop down list for staff members
|
|
; to choose from. Example: "Flaming,Foul Language"
|
|
officialwarnings="Flamming,Spamming,Causing Drama,Abusive Language"
|
|
|
|
; Maximum time in seconds a player can stay connected but idle. Default is 3600 (0 = disabled)
|
|
; Clients will be notified at the 90% time period of pending disconnection if they do not take action.
|
|
idleclienttimeout=3600
|
|
|
|
[authentication]
|
|
|
|
; Servatrice can authenticate users connecting. It currently supports 3 different authentication methods:
|
|
; * none: no authentication, accept every user;
|
|
; * password: require users to specify a common password to log in;
|
|
; * sql: authenticate users against the "users" table of the database;
|
|
; Please note that only the "sql" method permits to have registered users and store their data on the server.
|
|
method=none
|
|
|
|
; if the chosen authentication method is password, here you can define the password your users will use to log in
|
|
password=123456
|
|
|
|
; Accept only registered users? default is false (accept unregistered users)
|
|
regonly=false
|
|
|
|
[users]
|
|
|
|
; The minimum length a username can be
|
|
minnamelength=6
|
|
|
|
; The maximum length a username can be
|
|
maxnamelength=12
|
|
|
|
; If a username should be allowed to contain lowercase chars [a-z]
|
|
allowlowercase=true
|
|
|
|
; If a username should be allowed to conatain uppercase chars [A-Z]
|
|
allowuppercase=true
|
|
|
|
; If a username should be allowed to contain numbers [0-9]
|
|
allownumerics=true
|
|
|
|
; Define punctuation allowed in usernames
|
|
allowedpunctuation=_.-
|
|
|
|
; If a username can begin with punctuation defined in allowedpunctuation
|
|
allowpunctuationprefix=false
|
|
|
|
; Disallow usernames containing these words. This list is comma seperated, e.g.
|
|
; "admin,user,name"
|
|
disallowedwords="admin"
|
|
|
|
; Disallow usernames matching these regular expressions. This list is comma
|
|
; separated, e.g. "\\w+\\d+,\\d{2}user", hence you cannot use commas in your
|
|
; expressions. Backslashes must be escaped, so `\w+\d+` becomes `\\w+\\d+`.
|
|
; WARNING: Complex expressions can be harmful to performance. Please make sure
|
|
; your expressions are considered well formed. See this page for info:
|
|
; http://www.regular-expressions.info/catastrophic.html
|
|
disallowedregexp=""
|
|
|
|
; Define minimum password length
|
|
; Default 6.
|
|
minpasswordlength = 6
|
|
|
|
[registration]
|
|
|
|
; Servatrice can process registration requests to add new users on the fly.
|
|
; Enable this feature? Default false.
|
|
;enabled=false
|
|
|
|
; Require users to provide an email address in order to register. Default true.
|
|
;requireemail=true
|
|
|
|
; Require email activation. Newly registered users will receive an activation token by email,
|
|
; and will be required to input back this token on cockatrice at the first login to get their
|
|
; account activated. Default true.
|
|
;requireemailactivation=true
|
|
|
|
; Set this number to the maximum number of accounts any one user can use to create new accounts
|
|
; using the same email address. 0 = Unlimited number of accounts (default).
|
|
;maxaccountsperemail=0
|
|
|
|
; You can prevent users from using certain mail domains for registration. This setting contains a
|
|
; comma-seperated list of email provider domains that you would like to prevent users from using
|
|
; during registration. Comparison's are implicit, so placing an entry such as mail.com will also
|
|
; prevent users from registering accounts with providers such as gmail.com and hotmail.com
|
|
; Example: "10minutemail.com,gmail.com"
|
|
;emailproviderblacklist=""
|
|
|
|
[forgotpassword]
|
|
|
|
; Servatrice can process forgot password requests allowing users to reset their account
|
|
; passwords in the event they forget it. Should this feature be enabled? Default: false.
|
|
; enable=false
|
|
|
|
; Forgot password request should not be allowed to stay valid forever. This settings
|
|
; informs servatrice how long a players forgot password reset token is valid for (in minutes).
|
|
; Default: 60
|
|
; tokenlife=60
|
|
|
|
; Servatrice can challenge users that are making forgot password requests to answer
|
|
; questions in regards to their account to help validate they are the true owner of the account.
|
|
; Should this feature be enabled? Default: false
|
|
; enablechallenge=false
|
|
|
|
; Email subject for the forgot password emails
|
|
; subject="Cockatrice forgot password token"
|
|
|
|
; Forgot password email body. You can use these tags here: %username %token
|
|
; They will be substituted with the actual values in the email
|
|
;
|
|
; body="Hi %username, sorry to hear you forgot your password on our Cockatrice server\r\nHere's the token to use to reset your account password:\r\n\r\n%token\r\n\r\nHappy gaming!"
|
|
|
|
|
|
[smtp]
|
|
|
|
; Enable the internal smtp client to send registration emails. If you would like to
|
|
; use some other method to send email activation tokens set this value to false. Otherwise
|
|
; setting it to true (default) the server will send canned generated emails containing
|
|
; activation tokens for you during update intervals. Setting this to false will require
|
|
; you to either manually activate user accounts or manually send users the activation token
|
|
; by whatever means.
|
|
enableinternalsmtpclient=true
|
|
|
|
; Connectin type: currently supported method are "tcp" and "ssl"; tls is autodetected if available
|
|
connection=tcp
|
|
|
|
; Accept all certificates: in ssl mode, enable this if your server is using an invalid/self signed certificate
|
|
acceptallcerts=false;
|
|
|
|
; Hostname or IP addres of the smtp server
|
|
host=localhost
|
|
|
|
; Smtp port number of the smtp server. Usual values are 25 or 587 for tcp, 465 for ssl
|
|
port=25
|
|
|
|
; Username: this typically matches the "from" email address
|
|
username=root@localhost
|
|
|
|
; Password for the username
|
|
password=foobar
|
|
|
|
; Sender email address: the "from" email address
|
|
email=root@localhost
|
|
|
|
; Sender email name
|
|
name="Cockatrice server"
|
|
|
|
; Email subject
|
|
subject="Cockatrice server account activation token"
|
|
|
|
; Email body. You can use these tags here: %username %token
|
|
; They will be substituted with the actual values in the email
|
|
;
|
|
body="Hi %username, thank our for registering on our Cockatrice server\r\nHere's the activation token you need to supply for activating your account:\r\n\r\n%token\r\n\r\nHappy gaming!"
|
|
|
|
[database]
|
|
|
|
; Database type. Valid values are:
|
|
; * none: no database;
|
|
; * mysql: mysql or compatible database;
|
|
type=none
|
|
|
|
; Prefix used in he database for table names; default is cockatrice
|
|
prefix=cockatrice
|
|
|
|
; Database connection parameter: server hostname or IP
|
|
hostname=localhost
|
|
|
|
; Database connection parameter: database name
|
|
database=servatrice
|
|
|
|
; Database connection parameter: database user
|
|
user=servatrice
|
|
|
|
; Database connection parameter: database user's password
|
|
password=foobar
|
|
|
|
[rooms]
|
|
|
|
; A servatrice server can expose to the users different "rooms" to chat and create games. Rooms can be defined
|
|
; with two different methods:
|
|
; config: rooms are defined in this configuration (see the following example)
|
|
; sql: rooms are defined in the "rooms" table of the database
|
|
method=config
|
|
|
|
; Example configuration for a server with rooms configured in the configuration file. Number of rooms defined
|
|
roomlist\size=1
|
|
|
|
; Room name for the room number 1
|
|
roomlist\1\name="General room"
|
|
|
|
; Room description for the room number 1
|
|
roomlist\1\description="Play anything here."
|
|
|
|
; Rooms can restrict the level of user that can join. Current supported options are none, registered, moderator, administrator.
|
|
; Default is none.
|
|
roomlist\1\permissionlevel=none
|
|
|
|
; Rooms can restrict the permission level of users that can join, Currnetly supported options are none, privileged, vip, and donator.
|
|
; Default is none.
|
|
roomlist\1\privilegelevel=none
|
|
|
|
; Wether to make users autojoin this room when connected to the server
|
|
roomlist\1\autojoin=true
|
|
|
|
; Message displayed to each user when he joins room number 1
|
|
roomlist\1\joinmessage="This message is only here to show that rooms can have a join message."
|
|
|
|
; The number of chat history messages to save that gets presented to a user joining the room
|
|
roomlist\1\chathistorysize=100
|
|
|
|
; Number of game types allowed (defined) in the room number 1
|
|
roomlist\1\game_types\size=3
|
|
|
|
; Name of the three game types for the room number 1
|
|
roomlist\1\game_types\1\name="GameType1"
|
|
roomlist\1\game_types\2\name="GameType2"
|
|
roomlist\1\game_types\3\name="GameType3"
|
|
|
|
|
|
[game]
|
|
|
|
; Maximum time in seconds all players in a game can stay inactive before the game is automatically closed;
|
|
; default is 120
|
|
max_game_inactivity_time=120
|
|
|
|
; All actions during a game are recorded and stored in the database as a replay that all participants of
|
|
; the game can go back to and review after the game is closed. This can require a fairly large amount of
|
|
; storage to save all the information. Disable this option to prevent the storing of replay data in
|
|
; the database. Default value is true.
|
|
store_replays=true
|
|
|
|
; Allow users to create a new game and join it as a judge. The host will be able to execute any action on
|
|
; the cards of every player. This is needed in order to support some games (eg. Werewolf).
|
|
; Default off to prevent abuse on servers that are mostly running other games.
|
|
allow_create_as_judge=false
|
|
|
|
[security]
|
|
; You may want to restrict the number of users that can connect to your server at any given time.
|
|
enable_max_user_limit=false
|
|
|
|
; Maximum number of users that can connect to the server, default is 500.
|
|
max_users_total=500
|
|
|
|
; Maximum number of users that can connect to the server using a tcp connection, default is 500.
|
|
max_users_tcp=500
|
|
|
|
; Maximum number of users that can connect to the server using a websocket connection, default is 500.
|
|
max_users_websocket=500
|
|
|
|
; Maximum number of users that can connect from the same IP address; useful to avoid bots, default is 4
|
|
max_users_per_address=4
|
|
|
|
; You may want to allow an unlimited number of users from a trusted source. This setting can contain a
|
|
; comma-separed list of IP addresses which will allow an unlimited number of connections from each of the
|
|
; IP addresses listed (ignoring the max_users_per_address). Default is "127.0.0.1,::1"; example: "192.73.233.244,81.4.100.74"
|
|
trusted_sources="127.0.0.1,::1"
|
|
|
|
; Servatrice can avoid users from flooding rooms with large number of messages in an interval of time.
|
|
; This setting defines the length in seconds of the considered interval; default is 10
|
|
message_counting_interval=10
|
|
|
|
; Maximum size in characters of all messages in an interval before new messages gets dropped; default is 1000
|
|
max_message_size_per_interval=1000
|
|
|
|
; Maximum number of messages in an interval before new messages gets dropped; default is 10
|
|
max_message_count_per_interval=10
|
|
|
|
; Maximum number of games a single user can create; default is 5
|
|
max_games_per_user=5
|
|
|
|
; Servatrice can avoid users from flooding games with large number of game commands in an interval of time.
|
|
; This setting defines the length in seconds of the considered interval; default is 10
|
|
command_counting_interval=10
|
|
|
|
; Maximum number of game commands in an interval before new commands gets dropped; default is 20
|
|
max_command_count_per_interval=20
|
|
|
|
[logging]
|
|
; Admin/Moderators can query the stored logs for information when looking up reports by various players. This
|
|
; option can allow or disallow them from doing so.
|
|
; !!NOTE!! Enabling this feature puts a very high CPU and DISK load on the server, enable with caution.
|
|
enablelogquery=false
|
|
|
|
; Servatrice can log user messages to the database table cockatrice_log.
|
|
; These messages can come from different sources; each source can be enabled separately.
|
|
|
|
; Log user messages inside chat rooms
|
|
log_user_msg_room=false
|
|
|
|
; Log user messages inside games
|
|
log_user_msg_game=false
|
|
|
|
; Log user messages in private chats
|
|
log_user_msg_chat=false
|
|
|
|
; Log user messages coming from other servers in the network
|
|
log_user_msg_isl=false
|
|
|
|
[audit]
|
|
|
|
; Servatrice can record certain actions being performed in the database for server operators to better understand
|
|
; if some one may be abusing application functionality. Enabling auditing will allow servatrice to record any
|
|
; of the below enabled audit functionality to be recorded.
|
|
; Default: true
|
|
enable_audit=true
|
|
|
|
; Servatrice can record when users attempt a new account registration. Should we enable auditing for this action?
|
|
; Default: true
|
|
enable_registration_audit=true
|
|
|
|
; Servatrice can record when a users attempts to reset the account password. Should we enable auditing for this action?
|
|
; Default: true
|
|
enable_forgotpassword_audit=true
|
|
|
|
|
|
; EXPERIMENTAL - NOT WORKING YET
|
|
; The following settings are relative to the server network functionality, that is not yet complete.
|
|
; Avoid enabling it unless you are willing to test it and help its development.
|
|
|
|
[servernetwork]
|
|
|
|
; Servatrice servers can connect themselves and build a network. This settins enable the ability of servatrice
|
|
; of waiting for other server's connections and connect to other servers. Other servers can be defined in the
|
|
; "servers" table of the database. Default is 0 (disabled)
|
|
active=0
|
|
|
|
; The TCP port number servatrice will listen on for other servers; default is 14747
|
|
port=14747
|
|
|
|
; Server-to-server communication needs a valid certificate in PEM format. Enter its filename in this setting
|
|
ssl_cert=ssl_cert.pem
|
|
|
|
; Filename of the private key for the server-to-server certificate
|
|
ssl_key=ssl_key.pem
|