* Creating of server side audit table for auditing actions such as password resets, account registrations and log queries. * Add migration script Add migration script for database * Update database script Update database script to reflect new audit table * Creating of server side audit table for auditing actions such as password resets, account registrations and log queries. * Add migration script Add migration script for database * Update database script Update database script to reflect new audit table * Corrected results column possible value(s). * Fixed migration script. * Added boolean audit logic Added enable/disable audit options Added audit functionality for forgot password * Added registration auditing Added registration auditing * Updated ActivateAccount Function Created clientid variable and used it in preporation for future potential protocol expansion. * Extended activation protocol Added clientid to activation command protocol * Typo correction Fix typo's * Missed type fix Found the infamous E! * Updated database function syntax Updated if/else syntax in db add audit function * Untabify content Untab files changed in PR
391 lines
16 KiB
Text
391 lines
16 KiB
Text
; 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 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. Unfortunately it can't support more than one thread.
|
|
; Set to 0 to disable the websocket server.
|
|
websocket_number_pools=1
|
|
|
|
; 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"
|
|
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=""
|
|
|
|
[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
|
|
|
|
; 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
|
|
|
|
[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
|