// SMARTFOXSERVER 2X ADMIN TOOL'S SERVER CONFIGURATOR MODULE // Server configuration settings descriptor file // // The "category" attribute indicates in which tab on the interface (if a TabNavigator is used) the parameter will be displayed. If missing a default category is used. //------------------------------------------- // GENERAL SETTINGS //------------------------------------------- // SOCKET ADDRESSES { "name":"socketAddresses", "label":"Socket addresses", "tooltip":"SmartFoxServer's communication address, port and protocol; removing the address/port to which you are currently connected will prevent the AdminTool reconnection after the server restart. Addresses and ports must be physically available on the hardware; using ports in the 0-1024 range requires starting SmartFoxServer as a Root user", "type":"DataGrid", "defaultListItem": [ { "name":"address", "label":"IP address", "tooltip":"IP address used by SmartFoxServer", "type":"ComboBox", "value":"127.0.0.1", "componentParams": { "dataProvider":"{$BasicValue=adminHelper.availableSocketAddresses}" } }, { "name":"port", "label":"Port", "tooltip":"Port used by SmartFoxServer", "type":"NumericStepper", "value":9933, "componentParams": { "minimum":0, "maximum":65535 } }, { "name":"type", "label":"Type", "tooltip":"Communication protocol", "type":"ComboBox", "value":"TCP", "componentParams": { "dataProvider":"TCP,UDP" } } ], "listValues":{$List=socketAddresses, instance=serverSettings, fields=address;port;type}, "clazz":"ServerSettings$SocketAddress" }, // SESSION MAX IDLE TIME { "name":"sessionMaxIdleTime", "label":"Session maximum idle time", "tooltip":"Maximum idle time for a session (in seconds), after which the client is disconnected; setting a value between 10 and 30 seconds is recommended", "type":"NumericStepper", "value":{$BasicValue=serverSettings.sessionMaxIdleTime}, "componentParams": { "minimum":5, "maximum":2147483647 } }, // USER MAX IDLE TIME { "name":"userMaxIdleTime", "label":"User maximum idle time", "tooltip":"Maximum idle time for a logged user (in seconds), after which the user is disconnected; this value must be greater than the session maximum idle time", "type":"NumericStepper", "value":{$BasicValue=serverSettings.userMaxIdleTime}, "componentParams": { "minimum":5, "maximum":2147483647 } }, // PROTOCOL COMPRESSION THRESHOLD { "name":"protocolCompressionThreshold", "label":"Protocol compression threshold", "tooltip":"Specifies the minimum message size (in bytes) that triggers the protocol compression; recommended values are those equal to or greater than 1024 bytes", "type":"NumericStepper", "value":{$BasicValue=serverSettings.protocolCompressionThreshold}, "componentParams": { "minimum":50, "maximum":2147483647 } }, // USE FRIENDLY EXCEPTIONS { "name":"useFriendlyExceptions", "label":"User-friendly exceptions", "tooltip":"Extends system exception messages with extra details, where applicable", "type":"CheckBox", "value":{$BasicValue=serverSettings.useFriendlyExceptions} }, // USE DEBUG MODE { "name":"useDebugMode", "label":"Use debug-mode", "tooltip":"Adds the full stack trace to each Server exception. Recommended", "type":"CheckBox", "value":{$BasicValue=serverSettings.useDebugMode} }, // GHOST HUNTER TASK { "name":"ghostHunterEnabled", "label":"Enable Ghost Hunter", "tooltip":"Runs a background task at regular intervals to detect ghost users and remove them", "type":"CheckBox", "value":{$BasicValue=serverSettings.ghostHunterEnabled} }, // SYSTEM CONTROLLER THREAD POOL SIZE { "name":"systemControllerThreadPoolSize", "label":"System Controller thread pool size", "tooltip":"[ADVANCED] Adjust the thread pool size for the System Controller", "type":"NumericStepper", "value":{$BasicValue=serverSettings.systemControllerThreadPoolSize}, "componentParams": { "minimum":1, "maximum":10000 } }, // EXTENSIONS CONTROLLER THREAD POOL SIZE { "name":"extensionControllerThreadPoolSize", "label":"Extensions Controller thread pool size", "tooltip":"[ADVANCED] Adjust the thread pool size for the Extensions Controller", "type":"NumericStepper", "value":{$BasicValue=serverSettings.extensionControllerThreadPoolSize}, "componentParams": { "minimum":1, "maximum":10000 } }, // SERVER TASK SCHEDULER THREAD POOL SIZE { "name":"schedulerThreadPoolSize", "label":"Server task scheduler thread pool size", "tooltip":"[ADVANCED] Adjust the thread pool size for the System Scheduler", "type":"NumericStepper", "value":{$BasicValue=serverSettings.schedulerThreadPoolSize}, "componentParams": { "minimum":1, "maximum":10000 } }, // SYSTEM CONTROLLER REQUEST QUEUE SIZE { "name":"systemControllerRequestQueueSize", "label":"System Controller request queue size", "tooltip":"[ADVANCED] Modifies the maximum size of the System Controller messages queue", "type":"NumericStepper", "value":{$BasicValue=serverSettings.systemControllerRequestQueueSize}, "componentParams": { "minimum":10, "maximum":2147483647 } }, // EXTENSIONS CONTROLLER REQUEST QUEUE SIZE { "name":"extensionControllerRequestQueueSize", "label":"Extensions Controller request queue size", "tooltip":"[ADVANCED] Modifies the maximum size of the Extensions Controller messages queue", "type":"NumericStepper", "value":{$BasicValue=serverSettings.extensionControllerRequestQueueSize}, "componentParams": { "minimum":10, "maximum":2147483647 } }, // START EXTENSION FILE MONITOR { "name":"startExtensionFileMonitor", "label":"Start Extension file monitor", "tooltip":"Enable realtime monitoring and reloading of Extensions", "type":"CheckBox", "value":{$BasicValue=serverSettings.startExtensionFileMonitor} }, // EXTENSION REMOTE DEBUG { "name":"extensionRemoteDebug", "label":"Extensions remote debug", "tooltip":"Enable remote debugging of Extensions", "type":"CheckBox", "value":{$BasicValue=serverSettings.extensionRemoteDebug} }, //------------------------------------------- // IP FILTER SETTINGS //------------------------------------------- // MAX CONNECTIONS PER IP ADDRESS { "name":"ipFilter.maxConnectionsPerAddress", "label":"Maximum connections per IP address", "tooltip":"Maximum number of connections coming from the same client IP address", "category":"IP filter", "type":"NumericStepper", "value":{$BasicValue=ipFilter.maxConnectionsPerAddress}, "componentParams": { "minimum":1, "maximum":2147483647 } }, // IP ADDRESS BLACK LIST { "name":"ipFilter.addressBlackList", "label":"IP addresses black-list", "tooltip":"The black-list prevents the connection attempts coming from the listed client IP addresses", "category":"IP filter", "type":"DataGrid", "defaultListItem": [ { "name":"ipAddress", "label":"IP address", "tooltip":"Client IP address", "type":"TextInput", "value":"", "validator":"ip", "componentParams": { "restrict":"0-9." } } ], "listValues":{$List=addressBlackList, instance=ipFilter, createField=ipAddress} }, // IP ADDRESS WHITE LIST { "name":"ipFilter.addressWhiteList", "label":"IP addresses white-list", "tooltip":"The white-list overrides the maximum connections per IP address limit, allowing any number of connections coming from the listed client IP addresses", "category":"IP filter", "type":"DataGrid", "defaultListItem": [ { "name":"ipAddress", "label":"IP address", "tooltip":"Client IP address", "type":"TextInput", "value":"", "validator":"ip", "componentParams": { "restrict":"0-9." } } ], "listValues":{$List=addressWhiteList, instance=ipFilter, createField=ipAddress} }, //------------------------------------------- // BAN USER MANAGER //------------------------------------------- // AUTO-REMOVE { "name":"bannedUserManager.isAutoRemove", "label":"Auto-remove", "tooltip":"Automatically remove banned users from the ban list when their ban-timeframe expires", "category":"Ban manager", "type":"CheckBox", "value":{$BasicValue=bannedUserManager.isAutoRemove} }, // PERSISTENT { "name":"bannedUserManager.isPersistent", "label":"Persistent", "tooltip":"Persistently store the banned user list so that it's not lost across SmartFoxServer restarts (recommended)", "category":"Ban manager", "type":"CheckBox", "value":{$BasicValue=bannedUserManager.isPersistent} }, // CUSTOM PERSISTENCE CLASS NAME { "name":"bannedUserManager.customPersistenceClass", "label":"Custom persistence class name", "tooltip":"Allows to provide a custom class to implement banned user list persistence", "category":"Ban manager", "type":"TextInput", "value":"{$BasicValue=bannedUserManager.customPersistenceClass}", "componentParams": { "restrict":"a-zA-Z0-9._" } }, //------------------------------------------- // HTML WEBSOCKETS //------------------------------------------- // ACTIVE { "name":"webSocket.isActive", "label":"Activate WebSocket protocol", "tooltip":"Enable/disable the HTML5 WebSockets protocol support", "category":"HTML5 WebSockets", "type":"CheckBox", "value":{$BasicValue=webSocket.isActive} }, // LISTENER ADDRESS { "name":"webSocket.bindAddress", "label":"WebSocket listener address", "tooltip":"IP address used for WebSocket comminication", "category":"HTML5 WebSockets", "type":"ComboBox", "value":{$BasicValue=webSocket.bindAddress}, "componentParams": { "dataProvider":"{$BasicValue=adminHelper.availableSocketAddresses}" } }, // LISTENER PORT { "name":"webSocket.tcpPort", "label":"WebSocket listener port", "tooltip":"TCP port used for WebSocket comminication", "category":"HTML5 WebSockets", "type":"NumericStepper", "value":{$BasicValue=webSocket.tcpPort}, "componentParams": { "minimum":0, "maximum":65535 } }, //------------------------------------------- // WEB SERVER //------------------------------------------- // ACTIVE { "name":"webServer.isActive", "label":"Activate", "tooltip":"Enable/disable the embedded http server", "category":"Web server", "type":"CheckBox", "value":{$BasicValue=webServer.isActive} }, // CONFIGURATION FILE { "name":"webServer.cfgFile", "label":"Configuration file", "tooltip":"[ADVANCED] The location of the embedded http server configuration file", "category":"Web server", "type":"TextInput", "value":"{$BasicValue=webServer.cfgFile}" }, // BLUEBOX POLLING TIMEOUT { "name":"webServer.blueBoxPollingTimeout", "label":"BlueBox polling timeout", "tooltip":"The amount of seconds after which a client connected through the BlueBox is considered disconnected if he doesn't send a polling request", "category":"Web server", "type":"NumericStepper", "value":{$BasicValue=webServer.blueBoxPollingTimeout}, "componentParams": { "minimum":25, "maximum":40 } }, // BLUEBOX MESSAGES QUEUE SIZE { "name":"webServer.blueBoxMsgQueueSize", "label":"BlueBox messages queue size", "tooltip":"The maximum amount of messages that can be queued for each client connected through the BlueBox", "category":"Web server", "type":"NumericStepper", "value":{$BasicValue=webServer.blueBoxMsgQueueSize}, "componentParams": { "minimum":20, "maximum":100 } }, //------------------------------------------- // FLASH CROSSDOMAIN POLICY SETTINGS //------------------------------------------- // USE MASTER SOCKET POLICY { "name":"flashCrossdomainPolicy.useMasterSocketPolicy", "label":"Use Flash Master Socket Policy", "tooltip":"If enabled, SmartFoxServer serves the Flash Master Socket Policy over TCP port 843 as required by Adobe's security restrictions", "category":"Adobe Flash Player", "type":"CheckBox", "value":{$BasicValue=flashCrossdomainPolicy.useMasterSocketPolicy} }, // FLASH POLICY XML FILE { "name":"flashCrossdomainPolicy.policyXmlFile", "label":"Flash policy XML file", "tooltip":"Location of the Flash policy file with respect to the SmartFoxServer's 'config/' folder; if not set, it will be impossible to connect to SmartFoxServer using Flash clients", "category":"Adobe Flash Player", "type":"TextInput", "value":"{$BasicValue=flashCrossdomainPolicy.policyXmlFile}" }, //------------------------------------------- // MAILER //------------------------------------------- // ACTIVE { "name":"mailer.isActive", "label":"Activate", "tooltip":"Enable/disable the email service", "category":"Mailer", "type":"CheckBox", "value":{$BasicValue=mailer.isActive} }, // MAIL HOST { "name":"mailer.mailHost", "label":"Mail host", "tooltip":"The SMTP server host name or IP address", "category":"Mailer", "type":"TextInput", "value":"{$BasicValue=mailer.mailHost}", "validator":"notNull" }, // SMTP PORT { "name":"mailer.smtpPort", "label":"SMTP port", "tooltip":"The SMTP server port", "category":"Mailer", "type":"NumericStepper", "value":{$BasicValue=mailer.smtpPort}, "componentParams": { "minimum":0, "maximum":65535 } }, // MAIL USER { "name":"mailer.mailUser", "label":"Mail username", "tooltip":"A valid account to connect to the SMTP server", "category":"Mailer", "type":"TextInput", "value":"{$BasicValue=mailer.mailUser}", "validator":"notNull" }, // MAIL PASSWORD { "name":"mailer.mailPass", "label":"Mail password", "tooltip":"The SMTP server account password", "category":"Mailer", "type":"TextInput", "value":"{$BasicValue=mailer.mailPass}" }, //------------------------------------------- // REMOTE ADMIN //------------------------------------------- // ADMINISTRATORS { "name":"remoteAdmin.administrators", "label":"Administrators", "tooltip":"The access credentials of SmartFoxServer administrators; removing all the administrators will prevent the Admin Tool to reconnect to the server instance after a disconnection", "category":"Remote admin", "type":"DataGrid", "defaultListItem": [ { "name":"login", "label":"Login", "tooltip":"Administrator's username", "type":"TextInput", "value":"", "validator":"notNull" }, { "name":"password", "label":"Password", "tooltip":"Administrator's password", "type":"TextInput", "value":"", "validator":"pwd" } ], "listValues":{$List=administrators, instance=remoteAdmin, fields=login;password}, "clazz":"ServerSettings$AdminUser" }, // ALLOWED REMOTE ADDRESSES { "name":"remoteAdmin.allowedRemoteAddresses", "label":"Allowed client IP addresses", "tooltip":"List of client IP address which are allowed to access the SmartFoxServer's administration; leave the list empty to skip this check on administrator login", "category":"Remote admin", "type":"DataGrid", "defaultListItem": [ { "name":"ipAddress", "label":"IP address", "tooltip":"Client IP address", "type":"TextInput", "value":"", "validator":"ip", "componentParams": { "restrict":"0-9." } } ], "listValues":{$List=allowedRemoteAddresses, instance=remoteAdmin, createField=ipAddress} }, // ADMIN TCP PORT { "name":"remoteAdmin.adminTcpPort", "label":"Administration TCP port", "tooltip":"TCP port number used for administration; set it to -1 to skip this check on administrator login", "category":"Remote admin", "type":"NumericStepper", "value":{$BasicValue=remoteAdmin.adminTcpPort}, "componentParams": { "minimum":-1, "maximum":65535 } }, //------------------------------------------- // JVM SETTINGS //------------------------------------------- // JVM OPTIONS { "name":"adminHelper.vmOptions", "label":"JVM options", "tooltip":"A list of additional settings to fine tune the Java Virtual Machine when running the SmartFoxServer process \n\nIMPORTANT\nThe following options are mandatory; if missing, SmartFoxServer execution could be negatively affected:\n-Dfile.encoding=UTF-8", "category":"JVM settings", "type":"DataGrid", "defaultListItem": [ { "name":"option", "label":"Option", "tooltip":"JVM option", "type":"TextInput", "value":"", "validator":"notNull" } ], "listValues":{$List=vmOptions, instance=adminHelper, createField=option} }, // JVM CLASSPATH { "name":"adminHelper.vmClasspath", "label":"JVM classpath", "tooltip":"A list of search paths for classes and resources used by SmartFoxServer and its custom Extensions \n\nIMPORTANT\nThe following paths are mandatory; if missing, you won't be able to run SmartFoxServer:\n./\nlib/*\nlib/Jetty/*\nextensions/__lib__/*", "category":"JVM settings", "type":"DataGrid", "defaultListItem": [ { "name":"path", "label":"Path", "tooltip":"JVM classpath", "type":"TextInput", "value":"", "validator":"notNull" } ], "listValues":{$List=vmClasspath, instance=adminHelper, createField=path} }