Gridmodus

From OpenSimWiki
Revision as of 01:44, 5 July 2017 by Manfred Aabye (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Der Gridmodus stellt ein Server zur Verfügung, um die Simulatoren zusammenzuschließen, zu einer Virtuellen Welt.

Hierfür wird der Robust Server verwendet, dieser wird in der Datei Robust.ini oder Robust.HG.ini Konfiguriert.

Dies ist eine funktionierende Robust.ini mit Hypergrid.

Hier muss nur in der Zeile BaseURL = "http://127.0.0.1", die tatsächliche IP oder Hostadresse angegeben werden.

Unter gridname = "the lost continent of hippo" und gridnick = "hippogrid" bitte den Namen eures Grids eintragen.

Es muss eine Region mit dem Namen Welcome angelegt werden da sie die Willkommen und Fallback Region ist.

Eingestellt werden kann das in der Zeile - Region_Welcome = "DefaultRegion, FallbackRegion"

Der Start erfolgt mit Robust.exe bzw. mono Robust.exe.

; * Run
; * $ Robust.exe -inifile Robust.HG.ini
; *

; * Configurations for enabling HG1.5
; * 
; * HG1.5 handlers are: OpenSim.Server.Handlers.dll:GatekeeperService
; *                     OpenSim.Server.Handlers.dll:UserAgentService
; * Additional OpenSim.Server.Handlers.dll:AssetServiceConnector and 
; *            OpenSim.Server.Handlers.dll:XInventoryInConnector 
; * are started in port 8002, outside the firewall
; *
; **
; *
; * 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:
; * [[<ConfigName>@]<port>/]<dll name>[:<class name>]
; *
[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 = "robust-include"

    ; 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


[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"

    ;; Additions for Hypergrid

    GatekeeperServiceInConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:GatekeeperServiceInConnector"
    UserAgentServerConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:UserAgentServerConnector"
    HeloServiceInConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:HeloServiceInConnector"
    HGFriendsServerConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:HGFriendsServerConnector"
    InstantMessageServerConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:InstantMessageServerConnector"
    HGInventoryServiceConnector = "HGInventoryService@${Const|PublicPort}/OpenSim.Server.Handlers.dll:XInventoryInConnector"
    HGAssetServiceConnector = "HGAssetService@${Const|PublicPort}/OpenSim.Server.Handlers.dll:AssetServiceConnector"
    ;; Uncomment this if you want Groups V2, HG to work
    ; HGGroupsServiceConnector = "${Const|PublicPort}/OpenSim.Addons.Groups.dll:HGGroupsServiceRobustConnector"

; * 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.
    ;; Hypergrid services are not affected by this; they are publicly available 
    ;; by design.

    ;; 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


[Hypergrid]
    ;# {HomeURI} {Hypergrid} {The Home URL of this world} {}
    ;; This is the address of the external robust server that
    ;; runs the UserAgentsService, possibly this server.
    ;; For example http://myworld.com:8002
    ;; This is a default that can be overwritten in some sections.
    HomeURI = "${Const|BaseURL}:${Const|PublicPort}"

    ;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {}
    ;; This is the address of the external robust server
    ;; that runs the Gatekeeper service, possibly this server.
    ;; For example http://myworld.com:8002
    ;; This is a default that can be overwritten in some sections.
    GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"

[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

    ;; Common asset service options
    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 = ""

    ;; Perform distance check for the creation of a linked region
    ; Check4096 = "True"

    ;; Needed to display non-default map tile images for linked regions
    AssetService = "OpenSim.Services.AssetService.dll:AssetService"

    ;; Directory for map tile images of linked regions
    ; MapTileDirectory = "./maptiles"
 
    ;; Next, we can specify properties of regions, including default and fallback regions
    ;; The syntax is: Region_<RegionName> = "<flags>"
    ;; or:            Region_<RegionID> = "<flags>"
    ;; where <flags> 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 = "DefaultRegion, FallbackRegion"
    ; (replace spaces with underscore)

    ;; Allow Hyperlinks to be created at the console
    HypergridLinker = true

    ;; Allow supporting viewers to export content
    ;; Set to false to prevent export
    ExportSupported = true

    ;; If you have this set under [Hypergrid], no need to set it here, leave it commented
    ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"


; * 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"
    ; Realm = "useraccounts"

    ;; 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 user service.
; * "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"

[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

    ;; for hypergrid
    UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService"

    ; This inventory service will be used to initialize the user's inventory
    HGInventoryServicePlugin = "HGInventoryService@OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService"
    ; NOTE: HGInventoryServiceConstructorArg is deprecated. For now it will work, but see above
	;       for the correct method if passing additional arguments.
    ;; end hypergrid

    ; 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
    
    ; Defaults for the users, if none is specified in the useraccounts table entry (ServiceURLs)
    ;; If you have GatekeeperURI set under [Hypergrid], no need to set it here, leave it commented
    ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"

    SRV_HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
    SRV_InventoryServerURI = "${Const|BaseURL}:${Const|PublicPort}"
    SRV_AssetServerURI = "${Const|BaseURL}:${Const|PublicPort}"
    SRV_ProfileServerURI = "${Const|BaseURL}:${Const|PublicPort}"
    SRV_FriendsServerURI = "${Const|BaseURL}:${Const|PublicPort}"
    SRV_IMServerURI = "${Const|BaseURL}:${Const|PublicPort}"
    SRV_GroupsServerURI = "${Const|BaseURL}:${Const|PublicPort}"

    ;# {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


[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

    ; HG address of the gatekeeper, if you have one
    ; this is the entry point for all the regions of the world
    ; gatekeeper = ${Const|BaseURL}:${Const|PublicPort}/

    ; HG user domain, if you have one
    ; this is the entry point for all user-related HG services
    ; uas = ${Const|BaseURL}:${Const|PublicPort}/


[GatekeeperService]
    LocalServiceModule = "OpenSim.Services.HypergridService.dll:GatekeeperService"
    ;; for the service
    UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
    UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService"
    PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService"
    GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService"
    GridService = "OpenSim.Services.GridService.dll:GridService"
    AuthenticationService = "OpenSim.Services.Connectors.dll:AuthenticationServicesConnector"
    SimulationService ="OpenSim.Services.Connectors.dll:SimulationServiceConnector"
    ; how does the outside world reach me? This acts as public key too.
    ;; If you have GatekeeperURI set under [Hypergrid], no need to set it here, leave it commented
    ; ExternalName = "${Const|BaseURL}:${Const|PublicPort}"

    ; Does this grid allow incoming links to any region in it? 
    ; If false, HG TPs happen only to the Default regions specified in [GridService] section
    AllowTeleportsToAnyRegion = true
    
    ; If you run this gatekeeper server behind a proxy, set this to true
    ; HasProxy = false

    ;; Are foreign visitors allowed?
    ;ForeignAgentsAllowed = true
    ;;
    ;; If ForeignAgentsAllowed is true, make exceptions using AllowExcept.
    ;; Leave blank or commented for no exceptions.
    ; AllowExcept = "http://griefer.com:8002, http://enemy.com:8002"
    ;;
    ;; If ForeignAgentsAllowed is false, make exceptions using DisallowExcept
    ;; Leave blank or commented for no exceptions.
    ; DisallowExcept = "http://myfriendgrid.com:8002, http://myboss.com:8002"


[UserAgentService]
    LocalServiceModule = "OpenSim.Services.HypergridService.dll:UserAgentService"
    ;; for the service
    GridUserService     = "OpenSim.Services.UserAccountService.dll:GridUserService"
    GridService         = "OpenSim.Services.GridService.dll:GridService"
    GatekeeperService   = "OpenSim.Services.HypergridService.dll:GatekeeperService"
    PresenceService     = "OpenSim.Services.PresenceService.dll:PresenceService"
    FriendsService      = "OpenSim.Services.FriendsService.dll:FriendsService"
    UserAccountService  = "OpenSim.Services.UserAccountService.dll:UserAccountService"

    ; If you run this user agent server behind a proxy, set this to true
    ; HasProxy = false

    ;; If you separate the UserAgentService from the LoginService, set this to
    ;; the IP address of the machine where your LoginService is
    ;LoginServerIP = "127.0.0.1"

    ; User level required to be contacted from other grids
    ;LevelOutsideContacts = 0

    ;; Restrictions on destinations of local users.
    ;; Are local users allowed to visit other grids?
    ;; What user level? Use variables of this forrm:
    ;; ForeignTripsAllowed_Level_<UserLevel> = true | false
    ;; (the default is true)
    ;; For example:
    ; ForeignTripsAllowed_Level_0 = false
    ; ForeignTripsAllowed_Level_200 = true ; true is default, no need to say it
    ;;
    ;; If ForeignTripsAllowed is false, make exceptions using DisallowExcept
    ;; Leave blank or commented for no exceptions.
    ; DisallowExcept_Level_0 = "http://myothergrid.com:8002, http://boss.com:8002"
    ;;
    ;; If ForeignTripsAllowed is true, make exceptions using AllowExcept.
    ;; Leave blank or commented for no exceptions.
    ; AllowExcept_Level_200 = "http://griefer.com:8002, http://enemy.com:8002"

    ;; This variable controls what is exposed to profiles of local users
    ;; as seen from outside of this grid. Leave it uncommented for exposing
    ;; UserTitle, UserFlags and the creation date. Uncomment and change to False
    ;; to block this info from being exposed.
    ; ShowUserDetailsInHGProfile = True


; * The interface that local users get when they are in other grids.
; * This restricts the inventory operations while in other grids.
; * Still not completely safe, especially if users perform inventory operations 
; * while in those grids. The more the user accesses his/her inventory, the more
; * those simulators will know about the user's inventory.
; * 
[HGInventoryService]
    ; For the InventoryServiceInConnector
    LocalServiceModule    = "OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService"
    ;; alternatives:
    ;;  HG1.5, more permissive, not recommended, but still supported
    ;LocalServiceModule    = "OpenSim.Services.HypergridService.dll:HGInventoryService"
    ;;  HG1.0, totally permissive, not recommended, but OK for grids with 100% trust
    ;LocalServiceModule    = "OpenSim.Services.InventoryService.dll:XInventoryService"

    UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
    AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService"

    ; HGInventoryService is a public-facing inventory service that allows users to 
    ; interact with their suitcase folder when on a foreign grid.  This reuses the general inventory service connector.
    ; Hence, if the user has set up authentication in [Network] to protect their private services
    ; make sure it is not set here.
    AuthType = None

    ;; Can overwrite the default in [Hypergrid], but probably shouldn't
    ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}"


; * The interface that local users get when they are in other grids.
; * This restricts the access that the rest of the world has to
; * the assets of this world.
; * 
[HGAssetService]
    ;; Use the second option if you have FSAsset service enabled
    LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGAssetService"
    ;LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGFSAssetService"
    
    UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService"

    ; HGAssetService is a public-facing service that allows users to  
    ; read and create assets when on another grid.  This reuses the general asset service connector.
    ; Hence, if the user has set up authentication in [Network] to protect their private services
    ; make sure it is overriden for this public service.
    AuthType = None

    ;; Can overwrite the default in [Hypergrid], but probably shouldn't
    ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}"

    ;; The asset types that this grid can export to / import from other grids.
    ;; Comma separated.
    ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely:
    ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText, 
    ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh 
    ;;
    ;; Leave blank or commented if you don't want to apply any restrictions.
    ;; A more strict, but still reasonable, policy may be to disallow the exchange 
    ;; of scripts, like so:
    ; DisallowExport ="LSLText"
    ; DisallowImport ="LSLBytecode"


[HGFriendsService]
    LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGFriendsService"
    UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService"
    FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService"
    UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
    GridService = "OpenSim.Services.GridService.dll:GridService"
    PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService"


[HGInstantMessageService]
    LocalServiceModule  = "OpenSim.Services.HypergridService.dll:HGInstantMessageService"
    GridService         = "OpenSim.Services.GridService.dll:GridService"
    PresenceService     = "OpenSim.Services.PresenceService.dll:PresenceService"
    UserAgentService    = "OpenSim.Services.HypergridService.dll:UserAgentService"
    ; This should always be true in the Robust config
    InGatekeeper = True


[Messaging]
    ; OfflineIM
    OfflineIMService = "OpenSim.Addons.OfflineIM.dll:OfflineIMService"


[Groups]
    ;; for the HG Groups service
    OfflineIMService = "OpenSim.Addons.OfflineIM.dll:OfflineIMService"
    UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService"

    ;; What is the HomeURI of users associated with this grid?
    ;; Can overwrite the default in [Hypergrid], but probably shouldn't
    ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
    ;; end hypergrid

    ;; Sets the maximum number of groups an agent may join
    ; MaxAgentGroups = 42


[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"