; * Run ; * $ Robust.exe -inifile Robust.ini ; * ; ** ; * ; * The Const section allows us to define some basic information that we ; * will use throughout our configuration. We will provide examples for ; * setting the base url of the Robust server and the public and private ports ; * it uses. Changing the values of the constants will set the operating ; * parameters thoughout the configuration. Other constants that may prove ; * to be useful may be added to the followin section. They may be ; * referenced anywhere in the configuration by using ${Const|Name}. One ; * such use is providing a base path for setting locations that Robust ; * uses to write data. ; * [Const] ; The URL of the Robust server BaseURL = "http://127.0.0.1" ; The public port of the Robust server PublicPort = "8002" ; The private port of the Robust server PrivatePort = "8003" ; * The startup section lists all the connectors to start up in this server ; * instance. This may be only one, or it may be the entire server suite. ; * Multiple connectors should be separated by commas. ; * ; * These are the IN connectors the server uses, the in connectors ; * read this config file and load the needed service and database connectors ; * ; * The full syntax of a connector string is: ; * [[@]/][:] ; * [Startup] ; Place to create a PID file ; If no path if specified then a PID file is not created. ; PIDFile = "/tmp/Robust.exe.pid" ; Plugin Registry Location ; Set path to directory for plugin registry. Information ; about the registered repositories and installed plugins ; will be stored here ; The Robust.exe process must have R/W access to the location RegistryLocation = "." ; Modular configurations ; Set path to directory for modular ini files... ; The Robust.exe process must have R/W access to the location ConfigDirectory = "." ; Console commands can be saved to a file, so the command history persists after a restart. (default is true) ConsoleHistoryFileEnabled = true ; The history file can be just a filename (relative to OpenSim's bin/ directory ; or it can be a full path to somewhere else. (default is OpenSimConsoleHistory.txt in bin/) ConsoleHistoryFile = "RobustConsoleHistory.txt" ; How many lines of command history should we keep? (default is 100) ConsoleHistoryFileLines = 100 ; peers SSL certificate validation options ; used also on contacting other peers that require SSL and we don't ; you should set this to false forcing all peers (like regions) to have valid certificates ; but you can allow selfsigned certificates or no official CA with next option true NoVerifyCertChain = true ; you can also bypass the hostname or domain verification NoVerifyCertHostname = true ; having both options true does provide encriptation, but low security ; possible enought for small grids, specially it not comercial [ServiceList] AssetServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AssetServiceConnector" InventoryInConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:XInventoryInConnector" ;; Uncomment if you have set up Freeswitch (see [FreeswitchService] below) ;VoiceConnector = "8004/OpenSim.Server.Handlers.dll:FreeswitchServerConnector" GridServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:GridServiceConnector" GridInfoServerInConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:GridInfoServerInConnector" AuthenticationServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector" OpenIdServerConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:OpenIdServerConnector" AvatarServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AvatarServiceConnector" LLLoginServiceInConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector" PresenceServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:PresenceServiceConnector" UserAccountServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:UserAccountServiceConnector" GridUserServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:GridUserServiceConnector" AgentPreferencesServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AgentPreferencesServiceConnector" FriendsServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:FriendsServiceConnector" MapAddServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:MapAddServiceConnector" MapGetServiceConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:MapGetServiceConnector" ;; Uncomment this if you want offline IM to work ;OfflineIMServiceConnector = "${Const|PrivatePort}/OpenSim.Addons.OfflineIM.dll:OfflineIMServiceRobustConnector" ;; Uncomment this if you want Groups V2 to work ;GroupsServiceConnector = "${Const|PrivatePort}/OpenSim.Addons.Groups.dll:GroupsServiceRobustConnector" ;; Uncomment to provide bakes caching ;BakedTextureService = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:XBakesConnector" ;; Uncomment for UserProfiles see [UserProfilesService] to configure... ; UserProfilesServiceConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:UserProfilesConnector" ;; Uncomment if you want to have centralized estate data ; EstateDataService = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:EstateDataRobustConnector" ; * This is common for all services, it's the network setup for the entire ; * server instance, if none is specified above ; * [Network] port = ${Const|PrivatePort} ; HTTPS for "Out of band" management applications such as the remote admin ; module. May specify https_main = True to make the main http server ; use https or "False" to make the main server HTTP ; https_main = False ; ; Create https_listener = "True" will create a listener on the port ; specified. Provide the path to your server certificate along with it's ; password ; https_listener = False ; ; Set our listener to this port ; https_port = 0 ; ; Path to X509 certificate ; cert_path = "path/to/cert.p12" ; ; Password for cert ; cert_pass = "password" ;; The follow 3 variables are for HTTP Basic Authentication for the Robust services. ;; Use this if your central services in port ${Const|PrivatePort} need to be accessible on the Internet ;; but you want to protect them from unauthorized access. ; AuthType = "BasicHttpAuthentication" ; HttpAuthUsername = "some_username" ; HttpAuthPassword = "some_password" ;; ;; AuthType above can be overriden in any of the service sections below by ; AuthType = "None" ;; This is useful in cases where you want to protect most of the services, ;; but unprotect individual services. Username and Password can also be ;; overriden if you want to use different credentials for the different services. ;; By default, scripts are not allowed to call private services via llHttpRequest() ;; Such calls are detected by the X-SecondLife-Shared HTTP header ;; If you allow such calls you must be sure that they are restricted to very trusted scripters ;; (remember scripts can also be in visiting avatar attachments). ;; This can be overriden in individual private service sections if necessary AllowllHTTPRequestIn = false ; * The following are for the remote console ; * They have no effect for the local or basic console types ; * Leave commented to diable logins to the console ;ConsoleUser = Test ;ConsolePass = secret ;ConsolePort = 0 [AccessControl] ;# {AllowedClients} {} {Bar (|) separated list of allowed clients} {} ;; Bar (|) separated list of viewers which may gain access to the regions. ;; One can use a substring of the viewer name to enable only certain ;; versions ;; Example: Agent uses the viewer "Imprudence 1.3.2.0" ;; - "Imprudence" has access ;; - "Imprudence 1.3" has access ;; - "Imprudence 1.3.1" has no access ; AllowedClients = "" ;# {DeniedClients} {} {Bar (|) separated list of denied clients} {} ;; Bar (|) separated list of viewers which may not gain access to the regions. ;; One can use a Substring of the viewer name to disable only certain ;; versions ;; Example: Agent uses the viewer "Imprudence 1.3.2.0" ;; - "Imprudence" has no access ;; - "Imprudence 1.3" has no access ;; - "Imprudence 1.3.1" has access ; DeniedClients = "" [DatabaseService] ; PGSQL ; Uncomment these lines if you want to use PGSQL storage ; Change the connection string to your db details ;StorageProvider = "OpenSim.Data.PGSQL.dll" ;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;" ; MySQL ; Uncomment these lines if you want to use MySQL storage ; Change the connection string to your db details StorageProvider = "OpenSim.Data.MySQL.dll" ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;Old Guids=true;" ; * As an example, the below configuration precisely mimicks the legacy ; * asset server. It is read by the asset IN connector (defined above) ; * and it then loads the OUT connector (a local database module). That, ; * in turn, reads the asset loader and database connection information ; * [AssetService] ;; Choose an asset service (Only one option should be enabled) LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService" ;LocalServiceModule = "OpenSim.Services.FSAssetService.dll:FSAssetConnector" ;; FSAsset Directories. Base directory, where final asset files are stored and Spool directory for temp files ;; These directories must be on the same physical filesystem ;BaseDirectory = "./fsassets/data" ;SpoolDirectory = "./fsassets/tmp" ;; Original service can be checked if FSAssets can not find an asset ;FallbackService = "OpenSim.Services.AssetService.dll:AssetService"; ;; How many days since last updating the access time before its updated again by FSAssets when accessing an asset ;; Reduces DB calls if asset is requested often. Default value 0 will always update access time ;DaysBetweenAccessTimeUpdates = 30 ;; Should FSAssets print read/write stats to the robust console, default is true ;ShowConsoleStats = true ;; FSAssets Custom Database Config (Leave blank to use grids default database configuration) ;StorageProvider = "" ;ConnectionString = "" ;Realm = "fsassets" ;; The following are common to both the default asset service and FSAsset service ;; Default loader for loading default assets from XML on first run DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll" AssetLoaderArgs = "./assets/AssetSets.xml" ; Allow maptile assets to remotely deleted by remote calls to the asset service. ; There is no harm in having this as false - it just means that historical maptile assets are not deleted. ; This only applies to maptiles served via the version 1 viewer mechanisms ; Default is false AllowRemoteDelete = false ; Allow all assets to be remotely deleted. ; Only set this to true if you are operating a grid where you control all calls to the asset service ; (where a necessary condition is that you control all simulators) and you need this for admin purposes. ; If set to true, AllowRemoteDelete = true is required as well. ; Default is false. AllowRemoteDeleteAllTypes = false ; * This configuration loads the inventory server modules. It duplicates ; * the function of the legacy inventory server ; * [InventoryService] LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService" ; Will calls to purge folders (empty trash) and immediately delete/update items or folders (not move to trash first) succeed? ; If this is set to false then some other arrangement must be made to perform these operations if necessary. AllowDelete = true ; * This is the new style grid service. ; * "Realm" is the table that is used for user lookup. ; * It defaults to "regions", which uses the legacy tables ; * [GridService] LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" ; Realm = "regions" ; AllowDuplicateNames = "True" ;; Next, we can specify properties of regions, including default and fallback regions ;; The syntax is: Region_ = "" ;; or: Region_ = "" ;; where can be DefaultRegion, DefaultHGRegion, FallbackRegion, NoDirectLogin, Persistent, LockedOut, Reservation, NoMove, Authenticate ;; ;; DefaultRegion If a local login cannot be placed in the required region (e.g. home region does not exist, avatar is not allowed entry, etc.) ;; then this region becomes the destination. Only the first online default region will be used. If no DefaultHGRegion ;; is specified then this will also be used as the region for hypergrid connections that require it (commonly because they have not specified ;; an explicit region. ;; ;; DefaultHGRegion If an avatar connecting via the hypergrid does not specify a region, then they are placed here. Only the first online ;; region will be used. ;; ;; FallbackRegion If the DefaultRegion is not available for a local login, then any FallbackRegions are tried instead. These are tried in the ;; order specified. This only applies to local logins at this time, not Hypergrid connections. ;; ;; NoDirectLogin A hypergrid user cannot directly connect to this region. This does not apply to local logins. ;; ;; Persistent When the simulator is shutdown, the region is signalled as offline but left registered on the grid. ;; ;; Example specification: ; Region_Welcome_Area = "DefaultRegion, FallbackRegion" ; (replace spaces with underscore) ;; Allow supporting viewers to export content ;; Set to false to prevent export ExportSupported = true ; * This is the configuration for the freeswitch server in grid mode [FreeswitchService] LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService" ;; The IP address of your FreeSWITCH server. ;; This address must be reachable by viewers. ; ServerAddress = 127.0.0.1 ;; The following configuration parameters are optional ;; By default, this is the same as the ServerAddress ; Realm = 127.0.0.1 ;; By default, this is the same as the ServerAddress on port 5060 ; SIPProxy = 127.0.0.1:5060 ;; Default is 5000ms ; DefaultTimeout = 5000 ;; The dial plan context. Default is "default" ; Context = default ;; Currently unused ; UserName = freeswitch ;; Currently unused ; Password = password ;; The following parameters are for STUN = Simple Traversal of UDP through NATs ;; See http://wiki.freeswitch.org/wiki/NAT_Traversal ;; stun.freeswitch.org is not guaranteed to be running so use it in ;; production at your own risk ; EchoServer = 127.0.0.1 ; EchoPort = 50505 ; AttemptSTUN = false ; * This is the new style authentication service. Currently, only MySQL ; * is implemented. ; * [AuthenticationService] ; for the server connector LocalServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" ;; Allow the service to process HTTP getauthinfo calls. ;; Default is false. ; AllowGetAuthInfo = false ;; Allow the service to process HTTP setauthinfo calls. ;; Default is false. ; AllowSetAuthInfo = false ;; Allow the service to process HTTP setpassword calls. ;; Default is false. ; AllowSetPassword = false [OpenIdService] ; for the server connector AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" UserAccountServiceModule = "OpenSim.Services.UserAccountService.dll:UserAccountService" ; * This is the new style authentication service. Currently, only MySQL ; * is implemented. "Realm" is the table that is used for user lookup. ; * It defaults to "useraccounts", which uses the new style. ; * Realm = "users" will use the legacy tables as an authentication source ; * [UserAccountService] ; for the server connector LocalServiceModule = "OpenSim.Services.UserAccountService.dll:UserAccountService" ; Realm = "useraccounts" ; These are for creating new accounts by the service AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" GridService = "OpenSim.Services.GridService.dll:GridService" InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" ;; This switch creates the minimum set of body parts and avatar entries for a viewer 2 ;; to show a default "Ruth" avatar rather than a cloud for a newly created user. ;; Default is false CreateDefaultAvatarEntries = true ;; Allow the service to process HTTP createuser calls. ;; Default is false. ; AllowCreateUser = false ;; Allow the service to process HTTP setaccount calls. ;; Default is false. ; AllowSetAccount = false [GridUserService] ; for the server connector LocalServiceModule = "OpenSim.Services.UserAccountService.dll:GridUserService" [AgentPreferencesService] ; for the server connector LocalServiceModule = "OpenSim.Services.UserAccountService.dll:AgentPreferencesService" [PresenceService] ; for the server connector LocalServiceModule = "OpenSim.Services.PresenceService.dll:PresenceService" ; Set this to true to allow the use of advanced web services and multiple ; bots using one account AllowDuplicatePresences = false; [AvatarService] ; for the server connector LocalServiceModule = "OpenSim.Services.AvatarService.dll:AvatarService" [FriendsService] ; for the server connector LocalServiceModule = "OpenSim.Services.FriendsService.dll:FriendsService" [EstateService] LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService" [LibraryService] LibraryName = "OpenSim Library" DefaultLibrary = "./inventory/Libraries.xml" [LoginService] ; for the server connector LocalServiceModule = "OpenSim.Services.LLLoginService.dll:LLLoginService" ; for the service UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" GridService = "OpenSim.Services.GridService.dll:GridService" SimulationService ="OpenSim.Services.Connectors.dll:SimulationServiceConnector" LibraryService = "OpenSim.Services.InventoryService.dll:LibraryService" FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" ; The minimum user level required for a user to be able to login. 0 by default ; If you disable a particular user's account then you can set their login level below this number. ; You can also change this level from the console though these changes will not be persisted. ; MinLoginLevel = 0 ; Ask co-operative viewers to use a different currency name ;Currency = "" ;; Set minimum fee to publish classified ; ClassifiedFee = 0 WelcomeMessage = "Welcome, Avatar!" AllowRemoteSetLoginLevel = "false" ; For V2 map MapTileURL = "${Const|BaseURL}:${Const|PublicPort}/"; ; Url to search service ; SearchURL = "${Const|BaseURL}:${Const|PublicPort}/"; ; For V3 destination guide ; DestinationGuide = "${Const|BaseURL}/guide" ; For V3 avatar picker (( work in progress )) ; AvatarPicker = "${Const|BaseURL}/avatars" ; If you run this login server behind a proxy, set this to true ; HasProxy = false ;# {DSTZone} {} {Override Daylight Saving Time rules} {* none local} "America/Los_Angeles;Pacific Standard Time" ;; Viewers do not listen to timezone sent by the server. They use Pacific Standard Time instead, ;; but rely on the server to calculate Daylight Saving Time. Sending another DST than US Pacific ;; would result in time inconsistencies between grids (during summer and around DST transition period) ;; default let OpenSim calculate US Pacific DST ;; "none" disable DST (equivallent to "local" with system set to GMT) ;; "local" force legacy behaviour (using local system time to calculate DST) ; DSTZone = "America/Los_Angeles;Pacific Standard Time" ;# {DSTZone} {} {Override Daylight Saving Time rules} {* none local} "America/Los_Angeles;Pacific Standard Time" ;; Viewers do not receive timezone information from the server - almost all (?) default to Pacific Standard Time ;; However, they do rely on the server to tell them whether it's Daylight Saving Time or not. ;; Hence, calculating DST based on a different timezone can result in a misleading viewer display and inconsistencies between grids. ;; By default, this setting uses various timezone names to calculate DST with regards to the viewer's standard PST. ;; Options are ;; "none" no DST ;; "local" use the server's only timezone to calculate DST. This is previous OpenSimulator behaviour. ;; "America/Los_Angeles;Pacific Standard Time" use these timezone names to look up Daylight savings. ;; 'America/Los_Angeles' is used on Linux/Mac systems whilst 'Pacific Standard Time' is used on Windows DSTZone = "America/Los_Angeles;Pacific Standard Time" ;Basic Login Service Dos Protection Tweaks ;; ;; Some Grids/Users use a transparent proxy that makes use of the X-Forwarded-For HTTP Header, If you do, set this to true ;; If you set this to true and you don't have a transparent proxy, it may allow attackers to put random things in the X-Forwarded-For header to ;; get around this basic DOS protection. ;DOSAllowXForwardedForHeader = false ;; ;; The protector adds up requests during this rolling period of time, default 10 seconds ;DOSRequestTimeFrameMS = 10000 ;; ;; The amount of requests in the above timeframe from the same endpoint that triggers protection ;DOSMaxRequestsInTimeFrame = 5 ;; ;; The amount of time that a specific endpoint is blocked. Default 2 minutes. ;DOSForgiveClientAfterMS = 120000 ;; ;; To turn off basic dos protection, set the DOSMaxRequestsInTimeFrame to 0. [MapImageService] LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService" ; Set this if you want to change the default ; TilesStoragePath = "maptiles" ; ; If for some reason you have the AddMapTile service outside the firewall (e.g. ${Const|PublicPort}), ; you may want to set this. Otherwise, don't set it, because it's already protected. ; GridService = "OpenSim.Services.GridService.dll:GridService" ; ; Additionally, if you run this server behind a proxy, set this to true ; HasProxy = false [Messaging] ; OfflineIM OfflineIMService = "OpenSim.Addons.OfflineIM.dll:OfflineIMService" [Groups] ;; Sets the maximum number of groups an agent may join ; MaxAgentGroups = 42 [GridInfoService] ; These settings are used to return information on a get_grid_info call. ; Client launcher scripts and third-party clients make use of this to ; autoconfigure the client and to provide a nice user experience. If you ; want to facilitate that, you should configure the settings here according ; to your grid or standalone setup. ; ; See http://opensimulator.org/wiki/GridInfo ; login uri: for grid this is the login server URI login = ${Const|BaseURL}:${Const|PublicPort}/ ; long grid name: the long name of your grid gridname = "the lost continent of hippo" ; short grid name: the short name of your grid gridnick = "hippogrid" ; login page: optional: if it exists it will be used to tell the client to use ; this as splash page ;welcome = ${Const|BaseURL}/welcome ; helper uri: optional: if it exists it will be used to tell the client to use ; this for all economy related things ;economy = ${Const|BaseURL}/economy ; web page of grid: optional: page providing further information about your grid ;about = ${Const|BaseURL}/about ; account creation: optional: page providing further information about obtaining ; a user account on your grid ;register = ${Const|BaseURL}/register ; help: optional: page providing further assistance for users of your grid ;help = ${Const|BaseURL}/help ; password help: optional: page providing password assistance for users of your grid ;password = ${Const|BaseURL}/password [UserProfilesService] LocalServiceModule = "OpenSim.Services.UserProfilesService.dll:UserProfilesService" Enabled = false ;; Configure this for separate profiles database ;; ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;Old Guids=true;" ;; Realm = UserProfiles UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" [BakedTextureService] LocalServiceModule = "OpenSim.Server.Handlers.dll:XBakes" ;; This directory must be writable by the user ROBUST runs as. It will be created automatically. BaseDirectory = "./bakes"