Installing and Running Hypergrid

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Installing and Running Hypergrid On OpenSimulator 0.6.9)
m (Note added, fixed confusing 127.0.0.1 in grid configuration)
 
(15 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{Quicklinks}}
 
{{Quicklinks}}
  
= Installing & Running OpenSimulator in Hypergrid Mode =
+
These are instructions for setting up the [[Hypergrid]] in OpenSimulator's standalone and grid architectures.
The setup for hypergrid differs depending on whether you run OpenSimulator as a standalone or as a grid. There also came considerable changes with version 0.7.
+
  
= Configuration for OpenSimulator 0.7.3 onwards =
+
Before OpenSimulator 0.7.6, the HomeURI and Gatekeeper entries had to be added separately in individual modules and services configuration sectios.
There are some minor changes for Hypergrid configuration in OpenSimulator 0.7.3 compared to 0.7.2. Compared to 0.7.2, ProfileURI parameters become HomeURI parameters instead and lose their extensions (e.g. ProfileServerURI = "http://127.0.0.1:9000/profiles" in [HGInventoryService] in StandaloneCommon.ini becomes HomeURI = "http://127.0.0.1:9000"
+
  
== Standalone ==
+
However, there is now a more convenient way to do this by configuring these parameters just once in a new [Hypergrid] section of the appropriate configuration files (e.g. bin/config-include/StandaloneCommon.ini for the standalone architecture and bin/config-include/GridCommon.ini and bin/Robust.HG.ini for the grid architecture).
The configuration for hypergrid is activated in section [Architecture] in file OpenSim.ini. Ensure that the line for Include-HGStandalone is the only one that is uncommented in this section:
+
<source lang="ini">[Architecture]
+
    ;Include-Standalone    = "config-include/Standalone.ini"
+
    Include-HGStandalone = "config-include/StandaloneHypergrid.ini"
+
    ;Include-Grid        = "config-include/Grid.ini"
+
    ;Include-HGGrid      = "config-include/GridHypergrid.ini"
+
    ;Include-SimianGrid  = "config-include/SimianGrid.ini"</source>
+
  
In StandaloneCommon.ini the network addresses in the following sections must be changed to your external network address:
+
Below follow specific instructions when using the standalone architecture and when using the grid architecture.  Finally, there is a section for actions that need to be performed in both architectures.
<source lang="ini">
+
[HGInventoryService]
+
    HomeURI = "http://127.0.0.1:9000"
+
  
[HGAssetService]
+
=Installation=
    HomeURI = "http://127.0.0.1:9000"
+
  
[HGInventoryAccessModule]
+
== Please note ==
    HomeURI = "http://127.0.0.1:9000"
+
Since version 0.8, most variables are now correctly preconfigured for hypergrid. The use of variable substition (${Const|BaseURL}:${Const|PublicPort}) eliminates the need to repeat domain names and ports wich, ideally, should be declared only once in the [Const] section. Minor (or not so minor) changes may happen for release to release, so it is advised to rely on the comments inside the .ini files, although information on this page remains mainly valid. Today (0.9 and onward), enabling hypergrid is just a matter of uncommenting some lines as explained in the comments.
    Gatekeeper = "http://127.0.0.1:9000"
+
  
[GridService]
+
== Standalone ==
    Gatekeeper = "http://127.0.0.1:9000"
+
  
[Messaging]
+
=== bin/OpenSim.ini ===
     Gatekeeper = "http://127.0.0.1:9000"
+
The configuration for hypergrid is activated in section [Architecture] in file OpenSim.ini. Ensure that the line for Include-HGStandalone is the only one that is uncommented in this section:
 +
<source lang="ini">[Architecture]
 +
     ;Include-Architecture  = "config-include/Standalone.ini"
 +
    Include-Architecture    = "config-include/StandaloneHypergrid.ini"
 +
    ;Include-Architecture  = "config-include/Grid.ini"
 +
    ;Include-Architecture  = "config-include/GridHypergrid.ini"
 +
    ;Include-Architecture  = "config-include/SimianGrid.ini"</source>
  
[LoginService]
+
=== bin/config-include/StandaloneCommon.ini ===
    ; ... (other settings in this section) ...
+
The StandaloneHypergrid.ini will then go on to include the StandaloneCommon.ini file in the same directory.  This is where Hypergrid settings will be included.
    GatekeeperURI = "http://127.0.0.1:9000"
+
  
    SRV_HomeURI = "http://127.0.0.1:9000"
+
There are two steps to this configuration.
    SRV_InventoryServerURI = "http://127.0.0.1:9000"
+
    SRV_AssetServerURI = "http://127.0.0.1:9000"
+
    SRV_ProfileServerURI = "http://127.0.0.1:9000"
+
    SRV_FriendsServerURI = "http://127.0.0.1:9000"
+
    SRV_IMServerURI = "http://127.0.0.1:9000"
+
  
[GatekeeperService]
+
==== Step 1: Set HomeURI and GatekeeperURI in [Hypergrid] section ====
    ; ... (other settings in this section) ...
+
    ExternalName = "http://127.0.0.1:9000"
+
</source>
+
   
+
If you want to use a different port with these addresses, then you must adjust the HTTP listener port in section [Network] in OpenSim.ini, too:
+
<source lang="ini">[Network]
+
    ; ... (other settings in this section) ...
+
    http_listener_port = 9000
+
</source>
+
  
As a last step, the regions must be configured according to the previous changes. See [[#Region Setup for both Grid and Standalone]].
+
As both the simulator and grid services are running in the same process in standalone mode, Hypergrid can be configured by putting your externally accessible address in the [Hypergrid] section.
  
== Grid ==
+
For example, in
To enable hypergrid for a grid, both the Robust server and the region servers (simulators) must be configured appropriately.
+
  
=== Simulator ===
 
The region servers (simulators) that connect to the Robust server read their configuration from file OpenSim.ini. To activate hypergrid for them, the line for Include-HGGrid in section [Architecture] must be uncommented:
 
<source lang="ini">[Architecture]
 
    ;Include-Standalone    = "config-include/Standalone.ini"
 
    ;Include-HGStandalone = "config-include/StandaloneHypergrid.ini"
 
    ;Include-Grid        = "config-include/Grid.ini"
 
    Include-HGGrid      = "config-include/GridHypergrid.ini"
 
    ;Include-SimianGrid  = "config-include/SimianGrid.ini"
 
</source>
 
 
In GridCommon.ini the network addresses in the following sections must be changed to your external network address:
 
 
<source lang="ini">
 
<source lang="ini">
[GridService]
+
[Hypergrid]
    ; === HG ONLY ===
+
  ; Uncomment the variables in this section only if you are in
    ;; Change this to the address of your Gatekeeper service
+
  ; Hypergrid configuration. Otherwise, ignore.
    ;; (usually bundled with the rest of the services in one
+
    ;; Robust server in port 8002, but not always)
+
    Gatekeeper="http://mygridserver.com:8002"
+
  
[Messaging]
+
     ;# {HomeURI} {Hypergrid} {The Home URL of this world} {}
     ; === HG ONLY ===
+
  ;; If this is a standalone world, this is the address of this instance.
    ;; Change this to the address of your Gatekeeper service
+
  ;; If this is a grided simulator, this is the address of the external robust server that
    ;; (usually bundled with the rest of the services in one
+
  ;; runs the UserAgentsService.
    ;; Robust server in port 8002, but not always)
+
  ;; For example http://myworld.com:9000 or http://myworld.com:8002
    Gatekeeper = "http://mygridserver.com:8002"
+
  ;; This is a default that can be overwritten in some sections.
 +
  HomeURI = "http://127.0.0.1:9000"
  
[HGInventoryAccessModule]
+
     ;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {}
     ;
+
  ;; If this is a standalone world, this is the address of this instance.
    ; === HG ONLY ===
+
  ;; If this is a grided simulator, this is the address of the external robust server
    ; Change this to your server
+
  ;; that runs the Gatekeeper service.
    ; accessible from other grids
+
  ;; For example http://myworld.com:9000 or http://myworld.com:8002
    ;
+
  ;; This is a default that can be overwritten in some sections.
    HomeURI = "http://mygridserver.com:8002"
+
  GatekeeperURI = "http://127.0.0.1:9000"
    Gatekeeper = "http://mygridserver.com:8002"
+
</source>
  
[UserAgentService]
+
you need to replace "127.0.0.1" with your external IP or fully qualified domain name (FQDN).  For instance, if your FQDN was example.com, your entries would be
    ;
+
    ; === HG ONLY ===
+
    ; Change this to your user agent server (HG robust)
+
    ;
+
    UserAgentServerURI = "http://mygridserver.com:8002"
+
  
</source>
 
 
=== Robust Server ===
 
The Robust server is started with configuration file Robust.HG.ini instead of Robust.ini. If this file does not yet exist in your installation, create it by making a copy of Robust.HG.ini.example. Make the changes appropriate for your environment (e.g. adjust the database connection string). For hypergrid, the following settings are relevant:
 
 
 
 
<source lang="ini">
 
<source lang="ini">
[LoginService]
+
[Hypergrid]
    GatekeeperURI = "http://127.0.0.1:8002"
+
  HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
 
+
  GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"
    SRV_HomeURI = "http://127.0.0.1:8002"
+
    SRV_InventoryServerURI = "http://127.0.0.1:8002"
+
    SRV_AssetServerURI = "http://127.0.0.1:8002"
+
    SRV_ProfileServerURI = "http://127.0.0.1:8002/user"
+
    SRV_FriendsServerURI = "http://127.0.0.1:8002"
+
    SRV_IMServerURI = "http://127.0.0.1:8002"
+
 
+
[GatekeeperService]
+
    ; ... (other settings in this section) ...
+
    ExternalName = "http://127.0.0.1:8002"
+
 
+
[HGInventoryService]
+
    HomeURI = "http://127.0.0.1:8002"
+
 
+
; * 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]
+
    HomeURI = "http://127.0.0.1:8002"
+
 
</source>
 
</source>
  
If you want to change the port(s) used with these addresses, you will also need to adjust the ports in parameter ''''ServiceConnectors'''' in section [Startup] and probably the port configured in section [Network] as well.
+
==== Step 2: Set SRV_* addresses in [LoginService] ====
  
After these adjustments, the Robust server can be started. On Windows/.NET:
+
In addition to the [Hypergrid] entries, the same domain names or IP addresses need to be set in the [LoginService] section of StandaloneCommon.ini.
Robust -inifile=Robust.HG.ini
+
Or, with Mono (e.g. on Linux or OSX):
+
mono Robust.exe -inifile=Robust.HG.ini
+
  
== Region Setup for both Grid and Standalone ==
+
For example, in
Finally, all your regions must use the same external address that is set for GatekeeperService, for example:
+
<source lang="ini">[Region One]
+
    ; ... (other settings in this section) ...
+
    ExternalHostName = "example.com"
+
</source>
+
   
+
For the ports which are used by your regions, TCP and UDP requests must be forwarded through any firewall that is securing your network.
+
 
+
= Configuration for OpenSimulator 0.7.2 to 0.7 =
+
In order for OpenSimulator to be accessible in the hypergrid, you must use an externally visible IP address or domain name. You also may need to set up port forwarding for all ports (TCP and UDP) that OpenSimulator and the regions use. Typically, these are port 8002 for an installation running in grid mode and port 9000 for standalones. Regions typically use ports starting at 9000. For more information, see [[Network Settings]].
+
 
+
== Standalone ==
+
The configuration for hypergrid is activated in section [Architecture] in file OpenSim.ini. Ensure that the line for Include-HGStandalone is the only one that is uncommented in this section:
+
<source lang="ini">[Architecture]
+
    ;Include-Standalone    = "config-include/Standalone.ini"
+
    Include-HGStandalone = "config-include/StandaloneHypergrid.ini"
+
    ;Include-Grid        = "config-include/Grid.ini"
+
    ;Include-HGGrid      = "config-include/GridHypergrid.ini"
+
    ;Include-SimianGrid  = "config-include/SimianGrid.ini"</source>
+
  
In StandaloneCommon.ini the network addresses in the following sections must be changed to your external network address:
 
 
<source lang="ini">
 
<source lang="ini">
[HGInventoryService]
 
    ProfileServerURI = "http://127.0.0.1:9000/profiles"
 
 
[HGAssetService]
 
    ProfileServerURI = "http://127.0.0.1:9000/profiles"
 
 
[HGInventoryAccessModule]
 
    ProfileServerURI = "http://127.0.0.1:9000/profiles"
 
    Gatekeeper = "http://127.0.0.1:9000"
 
 
[GridService]
 
    Gatekeeper = "http://127.0.0.1:9000"
 
 
[Messaging]
 
    Gatekeeper = "http://127.0.0.1:9000"
 
 
 
[LoginService]
 
[LoginService]
    ; ... (other settings in this section) ...
+
     SRV_HomeURI = "http://127.0.0.1:9000"  
    GatekeeperURI = "http://127.0.0.1:9000"
+
 
+
     SRV_HomeURI = "http://127.0.0.1:9000"
+
 
     SRV_InventoryServerURI = "http://127.0.0.1:9000"
 
     SRV_InventoryServerURI = "http://127.0.0.1:9000"
 
     SRV_AssetServerURI = "http://127.0.0.1:9000"
 
     SRV_AssetServerURI = "http://127.0.0.1:9000"
Line 190: Line 80:
 
     SRV_FriendsServerURI = "http://127.0.0.1:9000"
 
     SRV_FriendsServerURI = "http://127.0.0.1:9000"
 
     SRV_IMServerURI = "http://127.0.0.1:9000"
 
     SRV_IMServerURI = "http://127.0.0.1:9000"
 +
</source>
  
[GatekeeperService]
+
all the SRV_* entries need to be replaced with your externally accessible IP or fully qualified domain name (FQDN). So again, if your domain was example.com, these entries become
    ; ... (other settings in this section) ...
+
 
     ExternalName = "http://example.com:9000"</source>
+
<source lang="ini">
   
+
[LoginService]
If you want to use a different port with these addresses, then you must adjust the HTTP listener port in section [Network] in OpenSim.ini, too:
+
     SRV_HomeURI = "${Hypergrid|HomeURI}"
<source lang="ini">[Network]
+
    SRV_InventoryServerURI = "${Const|BaseURL}:${Const|PublicPort}"
    ; ... (other settings in this section) ...
+
    SRV_AssetServerURI = "${Const|BaseURL}:${Const|PublicPort}"
 +
    SRV_ProfileServerURI = "${Const|BaseURL}:${Const|PublicPort}"
 +
    SRV_FriendsServerURI = "${Const|BaseURL}:${Const|PublicPort}"
 +
    SRV_IMServerURI = "${Const|BaseURL}:${Const|PublicPort}"
 +
</source>
 +
 
 +
==== Step 3: Change http_listener_port in bin/OpenSim.ini if necessary ====
 +
Port 9000 is the default port for a standalone.  If you wanted to use a different port then you will have to change both the ports in this section and the HTTP port used by OpenSimulator in the [Network] section of OpenSim.ini.
 +
 
 +
<source lang="ini">
 +
[Network]
 
     http_listener_port = 9000
 
     http_listener_port = 9000
 
</source>
 
</source>
  
As a last step, the regions must be configured according to the previous changes. See [[#Region Setup for both Grid and Standalone]].
+
=== bin/Regions/*.ini ===
 +
 
 +
As a last step, the regions must be configured so that they supply external addresses that are the same as the Hypergrid addresses (e.g. example.com). See [[#Region Setup for both Grid and Standalone]].
  
 
== Grid ==
 
== Grid ==
 +
'''Note: These instructions are still under construction.  They need to be changed to incorporate the [Hypergrid] setting shortcut detailed in the standalone section'''.
 +
 
To enable hypergrid for a grid, both the Robust server and the region servers (simulators) must be configured appropriately.
 
To enable hypergrid for a grid, both the Robust server and the region servers (simulators) must be configured appropriately.
  
 
=== Simulator ===
 
=== Simulator ===
The region servers (simulators) that connect to the Robust server read their configuration from file OpenSim.ini. To activate hypergrid for them, the line for Include-HGGrid in section [Architecture] must be uncommented:
+
The region servers (simulators) that connect to the Robust server read their configuration from file OpenSim.ini. To activate hypergrid for them, the line for Include-HGGrid in the section [Architecture] of OpenSim.ini must be uncommented:
 
<source lang="ini">[Architecture]
 
<source lang="ini">[Architecture]
     ;Include-Standalone   = "config-include/Standalone.ini"
+
     ;Include-Architecture   = "config-include/Standalone.ini"
     ;Include-HGStandalone = "config-include/StandaloneHypergrid.ini"
+
     ;Include-Architecture    = "config-include/StandaloneHypergrid.ini"
     ;Include-Grid        = "config-include/Grid.ini"
+
     ;Include-Architecture    = "config-include/Grid.ini"
     Include-HGGrid      = "config-include/GridHypergrid.ini"
+
     Include-Architecture    = "config-include/GridHypergrid.ini"
    ;Include-SimianGrid  = "config-include/SimianGrid.ini"
+
 
</source>
 
</source>
  
In GridCommon.ini the network addresses in the following sections must be changed to your external network address:
+
In config-include/GridCommon.ini the network addresses in the following sections must be changed to your external network address:
 
<source lang="ini">
 
<source lang="ini">
 
[GridService]
 
[GridService]
Line 223: Line 127:
 
     ;; (usually bundled with the rest of the services in one  
 
     ;; (usually bundled with the rest of the services in one  
 
     ;; Robust server in port 8002, but not always)
 
     ;; Robust server in port 8002, but not always)
     Gatekeeper="http://mygridserver.com:8002"
+
     Gatekeeper ="${Const|BaseURL}:${Const|PublicPort}"
 +
    GridServerURI = "${Const|PrivURL}:${Const|PrivatePort}"
  
 
[Messaging]
 
[Messaging]
Line 230: Line 135:
 
     ;; (usually bundled with the rest of the services in one  
 
     ;; (usually bundled with the rest of the services in one  
 
     ;; Robust server in port 8002, but not always)
 
     ;; Robust server in port 8002, but not always)
     Gatekeeper = "http://mygridserver.com:8002"
+
     Gatekeeper = "${Const|BaseURL}:${Const|PublicPort}"
  
 
[HGInventoryAccessModule]
 
[HGInventoryAccessModule]
Line 238: Line 143:
 
     ; accessible from other grids
 
     ; accessible from other grids
 
     ;
 
     ;
     ProfileServerURI = "http://mygridserver.com:8002/user"
+
     HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
     Gatekeeper = "http://mygridserver.com:8002"
+
     Gatekeeper = "${Const|BaseURL}:${Const|PublicPort}"
  
 
[UserAgentService]
 
[UserAgentService]
Line 246: Line 151:
 
     ; Change this to your user agent server (HG robust)
 
     ; Change this to your user agent server (HG robust)
 
     ;
 
     ;
     UserAgentServerURI = "http://mygridserver.com:8002"
+
     UserAgentServerURI = "${Const|BaseURL}:${Const|PublicPort}"
  
 
</source>
 
</source>
  
=== Robust Server ===
+
=== Robust Services ===
 
The Robust server is started with configuration file Robust.HG.ini instead of Robust.ini. If this file does not yet exist in your installation, create it by making a copy of Robust.HG.ini.example. Make the changes appropriate for your environment (e.g. adjust the database connection string). For hypergrid, the following settings are relevant:
 
The Robust server is started with configuration file Robust.HG.ini instead of Robust.ini. If this file does not yet exist in your installation, create it by making a copy of Robust.HG.ini.example. Make the changes appropriate for your environment (e.g. adjust the database connection string). For hypergrid, the following settings are relevant:
 
    
 
    
 
<source lang="ini">
 
<source lang="ini">
 
[LoginService]
 
[LoginService]
     GatekeeperURI = "http://127.0.0.1:8002"
+
     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}"
  
     SRV_HomeURI = "http://127.0.0.1:8002"
+
     GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"
    SRV_InventoryServerURI = "http://127.0.0.1:8002"
+
    SRV_AssetServerURI = "http://127.0.0.1:8002"
+
    SRV_ProfileServerURI = "http://127.0.0.1:8002/user"
+
    SRV_FriendsServerURI = "http://127.0.0.1:8002"
+
    SRV_IMServerURI = "http://127.0.0.1:8002"
+
  
 
[GatekeeperService]
 
[GatekeeperService]
 
     ; ... (other settings in this section) ...
 
     ; ... (other settings in this section) ...
     ExternalName = "http://127.0.0.1:8002"
+
     ExternalName = "${Const|BaseURL}:${Const|PublicPort}"
  
 
[HGInventoryService]
 
[HGInventoryService]
     ProfileServerURI = "http://127.0.0.1:8002/user"
+
     HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
  
 
; * The interface that local users get when they are in other grids.
 
; * The interface that local users get when they are in other grids.
Line 276: Line 182:
 
; *
 
; *
 
[HGAssetService]
 
[HGAssetService]
     ProfileServerURI = "http://127.0.0.1:8002/user"
+
     HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
 
</source>
 
</source>
  
Line 286: Line 192:
 
  mono Robust.exe -inifile=Robust.HG.ini
 
  mono Robust.exe -inifile=Robust.HG.ini
  
== Region Setup for both Grid and Standalone ==
+
== Grid and Standalone ==
 
Finally, all your regions must use the same external address that is set for GatekeeperService, for example:
 
Finally, all your regions must use the same external address that is set for GatekeeperService, for example:
 
<source lang="ini">[Region One]
 
<source lang="ini">[Region One]
Line 292: Line 198:
 
     ExternalHostName = "example.com"
 
     ExternalHostName = "example.com"
 
</source>
 
</source>
   
 
For the ports which are used by your regions, TCP and UDP requests must be forwarded through any firewall that is securing your network.
 
  
= The 4096 Regions Limit =
+
= Access =
Due to a viewer issue, teleports to destinations that are more than 4096 regions away in any direction will not work as expected. Most viewers will do the teleport but the destination region will not be rendered and thus remain invisible to you. What this means in practice is that if you wish to teleport from a region located at cell coordinates (1000, 1000) you cannot go beyond (5095, 5095). To reach destinations that are placed at farer locations, you should either place your own region closer to the destination, or use some intermediate region that is reachable from both your region and the destination region.
+
  
Refer to [[Public Hypergrid Nodes]] to see some known grids and standalones and where they are located.  
+
If users are to reach your Hypergrid installation from outside your LAN, they must be able to reach all the required ports and addresses.  For a home installation, this means forwarding TCP and UDP requests through your router and any installed firewalls.  See [[Network Settings]] for the required ports and addresses.
 +
 
 +
If you or other users also need to enter your Hypergrid installation from the same LAN, they also need to be able to resolve the External Hostname even if this is an Internet address (WAN) rather than a LAN address.  Not all routers have this capability.  For more information on this, please see [[NAT Loopback Routers]].
  
 
= Previous Instructions =
 
= Previous Instructions =
 +
 +
[[Installing and Running Hypergrid On OpenSimulator 0.7.3 to 0.7.5]]
  
 
[[Installing and Running Hypergrid On OpenSimulator 0.7.2 to 0.7]]
 
[[Installing and Running Hypergrid On OpenSimulator 0.7.2 to 0.7]]
 +
 
[[Installing and Running Hypergrid On OpenSimulator 0.6.9]]
 
[[Installing and Running Hypergrid On OpenSimulator 0.6.9]]
  

Latest revision as of 13:29, 18 June 2022

These are instructions for setting up the Hypergrid in OpenSimulator's standalone and grid architectures.

Before OpenSimulator 0.7.6, the HomeURI and Gatekeeper entries had to be added separately in individual modules and services configuration sectios.

However, there is now a more convenient way to do this by configuring these parameters just once in a new [Hypergrid] section of the appropriate configuration files (e.g. bin/config-include/StandaloneCommon.ini for the standalone architecture and bin/config-include/GridCommon.ini and bin/Robust.HG.ini for the grid architecture).

Below follow specific instructions when using the standalone architecture and when using the grid architecture. Finally, there is a section for actions that need to be performed in both architectures.

Contents

[edit] Installation

[edit] Please note

Since version 0.8, most variables are now correctly preconfigured for hypergrid. The use of variable substition (${Const|BaseURL}:${Const|PublicPort}) eliminates the need to repeat domain names and ports wich, ideally, should be declared only once in the [Const] section. Minor (or not so minor) changes may happen for release to release, so it is advised to rely on the comments inside the .ini files, although information on this page remains mainly valid. Today (0.9 and onward), enabling hypergrid is just a matter of uncommenting some lines as explained in the comments.

[edit] Standalone

[edit] bin/OpenSim.ini

The configuration for hypergrid is activated in section [Architecture] in file OpenSim.ini. Ensure that the line for Include-HGStandalone is the only one that is uncommented in this section:

[Architecture]
    ;Include-Architecture   = "config-include/Standalone.ini"
    Include-Architecture    = "config-include/StandaloneHypergrid.ini"
    ;Include-Architecture   = "config-include/Grid.ini"
    ;Include-Architecture   = "config-include/GridHypergrid.ini"
    ;Include-Architecture   = "config-include/SimianGrid.ini"

[edit] bin/config-include/StandaloneCommon.ini

The StandaloneHypergrid.ini will then go on to include the StandaloneCommon.ini file in the same directory. This is where Hypergrid settings will be included.

There are two steps to this configuration.

[edit] Step 1: Set HomeURI and GatekeeperURI in [Hypergrid] section

As both the simulator and grid services are running in the same process in standalone mode, Hypergrid can be configured by putting your externally accessible address in the [Hypergrid] section.

For example, in

[Hypergrid]
  ; Uncomment the variables in this section only if you are in
  ; Hypergrid configuration. Otherwise, ignore.
 
    ;# {HomeURI} {Hypergrid} {The Home URL of this world} {}
  ;; If this is a standalone world, this is the address of this instance.
  ;; If this is a grided simulator, this is the address of the external robust server that
  ;; runs the UserAgentsService.
  ;; For example http://myworld.com:9000 or http://myworld.com:8002
  ;; This is a default that can be overwritten in some sections.
  HomeURI = "http://127.0.0.1:9000"
 
    ;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {}
  ;; If this is a standalone world, this is the address of this instance.
  ;; If this is a grided simulator, this is the address of the external robust server
  ;; that runs the Gatekeeper service.
  ;; For example http://myworld.com:9000 or http://myworld.com:8002
  ;; This is a default that can be overwritten in some sections.
  GatekeeperURI = "http://127.0.0.1:9000"

you need to replace "127.0.0.1" with your external IP or fully qualified domain name (FQDN). For instance, if your FQDN was example.com, your entries would be

[Hypergrid]
  HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
  GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"

[edit] Step 2: Set SRV_* addresses in [LoginService]

In addition to the [Hypergrid] entries, the same domain names or IP addresses need to be set in the [LoginService] section of StandaloneCommon.ini.

For example, in

[LoginService]
    SRV_HomeURI = "http://127.0.0.1:9000"    
    SRV_InventoryServerURI = "http://127.0.0.1:9000"
    SRV_AssetServerURI = "http://127.0.0.1:9000"
    SRV_ProfileServerURI = "http://127.0.0.1:9000"
    SRV_FriendsServerURI = "http://127.0.0.1:9000"
    SRV_IMServerURI = "http://127.0.0.1:9000"

all the SRV_* entries need to be replaced with your externally accessible IP or fully qualified domain name (FQDN). So again, if your domain was example.com, these entries become

[LoginService]
    SRV_HomeURI = "${Hypergrid|HomeURI}"
    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}"

[edit] Step 3: Change http_listener_port in bin/OpenSim.ini if necessary

Port 9000 is the default port for a standalone. If you wanted to use a different port then you will have to change both the ports in this section and the HTTP port used by OpenSimulator in the [Network] section of OpenSim.ini.

[Network]
    http_listener_port = 9000

[edit] bin/Regions/*.ini

As a last step, the regions must be configured so that they supply external addresses that are the same as the Hypergrid addresses (e.g. example.com). See #Region Setup for both Grid and Standalone.

[edit] Grid

Note: These instructions are still under construction. They need to be changed to incorporate the [Hypergrid] setting shortcut detailed in the standalone section.

To enable hypergrid for a grid, both the Robust server and the region servers (simulators) must be configured appropriately.

[edit] Simulator

The region servers (simulators) that connect to the Robust server read their configuration from file OpenSim.ini. To activate hypergrid for them, the line for Include-HGGrid in the section [Architecture] of OpenSim.ini must be uncommented:

[Architecture]
    ;Include-Architecture    = "config-include/Standalone.ini"
    ;Include-Architecture    = "config-include/StandaloneHypergrid.ini"
    ;Include-Architecture    = "config-include/Grid.ini"
    Include-Architecture     = "config-include/GridHypergrid.ini"

In config-include/GridCommon.ini the network addresses in the following sections must be changed to your external network address:

[GridService]
    ; === HG ONLY === 
    ;; Change this to the address of your Gatekeeper service
    ;; (usually bundled with the rest of the services in one 
    ;; Robust server in port 8002, but not always)
    Gatekeeper ="${Const|BaseURL}:${Const|PublicPort}"
    GridServerURI = "${Const|PrivURL}:${Const|PrivatePort}"
 
[Messaging]
    ; === HG ONLY === 
    ;; Change this to the address of your Gatekeeper service
    ;; (usually bundled with the rest of the services in one 
    ;; Robust server in port 8002, but not always)
    Gatekeeper = "${Const|BaseURL}:${Const|PublicPort}"
 
[HGInventoryAccessModule]
    ;
    ; === HG ONLY ===
    ; Change this to your server
    ; accessible from other grids
    ;
    HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
    Gatekeeper = "${Const|BaseURL}:${Const|PublicPort}"
 
[UserAgentService]
    ;
    ; === HG ONLY ===
    ; Change this to your user agent server (HG robust)
    ;
    UserAgentServerURI = "${Const|BaseURL}:${Const|PublicPort}"

[edit] Robust Services

The Robust server is started with configuration file Robust.HG.ini instead of Robust.ini. If this file does not yet exist in your installation, create it by making a copy of Robust.HG.ini.example. Make the changes appropriate for your environment (e.g. adjust the database connection string). For hypergrid, the following settings are relevant:

[LoginService]
    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}"
 
    GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"
 
[GatekeeperService]
    ; ... (other settings in this section) ...
    ExternalName = "${Const|BaseURL}:${Const|PublicPort}"
 
[HGInventoryService]
    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]
    HomeURI = "${Const|BaseURL}:${Const|PublicPort}"

If you want to change the port(s) used with these addresses, you will also need to adjust the ports in parameter 'ServiceConnectors' in section [Startup] and probably the port configured in section [Network] as well.

After these adjustments, the Robust server can be started. On Windows/.NET:

Robust -inifile=Robust.HG.ini

Or, with Mono (e.g. on Linux or OSX):

mono Robust.exe -inifile=Robust.HG.ini

[edit] Grid and Standalone

Finally, all your regions must use the same external address that is set for GatekeeperService, for example:

[Region One]
    ; ... (other settings in this section) ...
    ExternalHostName = "example.com"

[edit] Access

If users are to reach your Hypergrid installation from outside your LAN, they must be able to reach all the required ports and addresses. For a home installation, this means forwarding TCP and UDP requests through your router and any installed firewalls. See Network Settings for the required ports and addresses.

If you or other users also need to enter your Hypergrid installation from the same LAN, they also need to be able to resolve the External Hostname even if this is an Internet address (WAN) rather than a LAN address. Not all routers have this capability. For more information on this, please see NAT Loopback Routers.

[edit] Previous Instructions

Installing and Running Hypergrid On OpenSimulator 0.7.3 to 0.7.5

Installing and Running Hypergrid On OpenSimulator 0.7.2 to 0.7

Installing and Running Hypergrid On OpenSimulator 0.6.9

[edit] Additional References

Implemented osFunctions: OSSL Implemented

Enabling osFunctions: OSSL Enabling Functions

HyperGrid Security: Hypergrid Security

Banning Foreign Users in Hypergrid: Banning Foreign Users in Hypergrid

Public HyperGrid Nodes Listing: Public Hypergrid Nodes

Hypergrid Inventory Access: Hypergrid Inventory Access (proposal)

CATEGORY: Hypergrid

Personal tools
General
About This Wiki