Installing and Running Hypergrid

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Listing linked regions)
m (Note added, fixed confusing 127.0.0.1 in grid configuration)
 
(47 intermediate revisions by 11 users not shown)
Line 1: Line 1:
__NOTOC__ {{Quicklinks}}  
+
{{Quicklinks}}
  
= Installing & Running OpenSim in Hypergrid Mode =
+
These are instructions for setting up the [[Hypergrid]] in OpenSimulator's standalone and grid architectures.
  
'''Revised Jan.07,2010'''. Effective from OpenSim 0.6.7 Post Fixes to 0.6.9 <dev> GIT# a542871 - r11916
+
Before OpenSimulator 0.7.6, the HomeURI and Gatekeeper entries had to be added separately in individual modules and services configuration sectios.
  
Subject to change in future
+
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).
  
'''Installing'''
+
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.
  
Checkout OpenSim, prebuild and build as normal or Download and install Binary Packages from the [[Main Page|MAIN&nbsp;Page ]]<br>If you're running your opensim in '''Grid Mode''' mode with&nbsp;servers on other machines, you&nbsp;only need to modify your OpenSim.ini to enable HyperGrid.
+
=Installation=
  
If you're running in standalone and you want it to be network-able, or if you have your grid on loopback (127.0.0.1) change all the [Network] server addresses to. See below.  
+
== 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.  
  
== EXAMPLE Network Sections  ==
+
== Standalone ==
  
=== Default Example, Network Settings for a Stand Alone: ===
+
=== 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:
 +
<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>
  
<source lang="ini">[Network]
+
=== bin/config-include/StandaloneCommon.ini ===
http_listener_port = 9000
+
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.
  
grid_server_url = "http://example.com:9000"
+
There are two steps to this configuration.
  
grid_send_key = null
+
==== Step 1: Set HomeURI and GatekeeperURI in [Hypergrid] section ====
grid_recv_key = null
+
  
user_server_url = "http://example.com:9000"
+
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.
  
user_send_key = null
+
For example, in
user_recv_key = null
+
  
asset_server_url = "http://example.com:9000"
+
<source lang="ini">
 +
[Hypergrid]
 +
  ; Uncomment the variables in this section only if you are in
 +
  ; Hypergrid configuration. Otherwise, ignore.
  
inventory_server_url = "http://example.com:9000"
+
    ;# {HomeURI} {Hypergrid} {The Home URL of this world} {}
messaging_server_url = "http://example.com:9000"</source>
+
  ;; 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"
  
=== Default Example, Network Settings for a Grided Server: ===
+
    ;# {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"
 +
</source>
  
<source lang="ini">[Network]
+
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
http_listener_port = 9000
+
  
grid_server_url = "http://example.com:8001"
+
<source lang="ini">
grid_send_key = null
+
[Hypergrid]
grid_recv_key = null
+
  HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
 +
  GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"
 +
</source>
  
user_server_url = "http://example.com:8002"
+
==== Step 2: Set SRV_* addresses in [LoginService] ====
user_send_key = null
+
user_recv_key = null
+
  
asset_server_url = "http://example.com:8003"
+
In addition to the [Hypergrid] entries, the same domain names or IP addresses need to be set in the [LoginService] section of StandaloneCommon.ini.
inventory_server_url = "http://example.com:8003"
+
messaging_server_url = "http://example.com:8006"</source>
+
  
=== Network Settings&nbsp;for OSGrid Attched Servers:  ===
+
For example, in
  
<source lang="ini">[Network]
+
<source lang="ini">
http_listener_port = 9000
+
[LoginService]
grid_server_url = "http://osgrid.org:8001" ;default 8003
+
    SRV_HomeURI = "http://127.0.0.1:9000"   
grid_send_key = "1234"
+
    SRV_InventoryServerURI = "http://127.0.0.1:9000"
grid_recv_key = "1234"
+
    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"
 +
</source>
  
user_server_url = "http://osgrid.org:8002"
+
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
user_send_key = "1234"
+
user_recv_key = "1234"
+
  
asset_server_url = "http://assets.osgrid.org:8003"  
+
<source lang="ini">
inventory_server_url = "http://osgrid.org:8004" ;default 8003
+
[LoginService]
messaging_server_url = "http://osgrid.org:8006"</source>  
+
    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}"
 +
</source>
  
=== Modifications needed to be applied to OpenSim.ini to enable Hypergrid  ===
+
==== 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.
  
- Change the following line at the top of the OpenSim.ini
+
<source lang="ini">
<pre>hypergrid = false to true</pre>
+
[Network]
- NEXT, Add or Modify the ### WORLD MAP Section as shown
+
    http_listener_port = 9000
 +
</source>
  
<source lang="ini">; ##
+
=== bin/Regions/*.ini ===
; ## WORLD MAP
+
; ##
+
  
WorldMapModule = "WorldMap"
+
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]].
MapImageModule = "MapImageModule"
+
WorldMapModule = "HGWorldMapModule" ;NOT INCLUDED IN DEFAULT OpenSim.ini.EXAMPLE</source>
+
  
''Information: HGWorldMapModule will, after teleporting to another grid, clean up tiles in your map left over from the grid on which you were previously.''  
+
== Grid ==
 +
'''Note: These instructions are still under construction.  They need to be changed to incorporate the [Hypergrid] setting shortcut detailed in the standalone section'''.
  
- NEXT, Modify the [Archictecture] Section at the bottom
+
To enable hypergrid for a grid, both the Robust server and the region servers (simulators) must be configured appropriately.
 
+
Uncomment the appropriate Include-HG* = line by removing the semi colon and making sure that is the only ONE uncommented. (example shows for a Stand Alone HG enabled installation)  
+
  
 +
=== 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:
 
<source lang="ini">[Architecture]
 
<source lang="ini">[Architecture]
;Include-Standalone = "config-include/Standalone.ini" ; DEFAULT UNCOMMENTED
+
    ;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"</source>&nbsp;
+
    Include-Architecture    = "config-include/GridHypergrid.ini"
 +
</source>
  
Your OpenSimulator instance should now be ready for inbound &amp; outbound Hypergrid use
+
In config-include/GridCommon.ini the network addresses in the following sections must be changed to your external network address:
 +
<source lang="ini">
 +
[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}"
  
=== Limitations:  ===
+
[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}"
  
Due to a viewer issue, you cannot teleport more than 4096 regions away. Some 3rd party Viewers have addressed this limitation. What this means, is that if you wish to teleport from a region located at 1000,1000 XY coordinates you cannot go beyond 5095. For Instance OSGrid is centered @ 10,000x10,000
+
[HGInventoryAccessModule]
 +
    ;
 +
    ; === HG ONLY ===
 +
    ; Change this to your server
 +
    ; accessible from other grids
 +
    ;
 +
    HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
 +
    Gatekeeper = "${Const|BaseURL}:${Const|PublicPort}"
  
Refer to [[Public Hypergrid Nodes|Public Hypergrid Nodes]] to see some known grids / StandAlones and others and where they are located.
+
[UserAgentService]
 +
    ;
 +
    ; === HG ONLY ===
 +
    ; Change this to your user agent server (HG robust)
 +
    ;
 +
    UserAgentServerURI = "${Const|BaseURL}:${Const|PublicPort}"
  
=== Important Notes:  ===
+
</source>
  
Make sure you have a 'home' set. If your home region doesn't exist, the hyperlink TPs may not work. To set your home, go to one of your local regions and "Set Home" from the viewer.  
+
=== 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:
 +
 
 +
<source lang="ini">
 +
[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}"
  
To Enable scripted Teleporting between regions, standalone, HyperGrid etc, you can use osTeleprotAgent function, Example here: [[OsTeleportAgent|OsTeleportAgent]]
+
    GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"
  
== Linking regions (Optional) ==
+
[GatekeeperService]
 +
    ; ... (other settings in this section) ...
 +
    ExternalName = "${Const|BaseURL}:${Const|PublicPort}"
  
=== Method 1  ===
+
[HGInventoryService]
 +
    HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
  
On the console, type for example:
+
; * The interface that local users get when they are in other grids.
<pre>link-region &lt;Xloc&gt; &lt;Yloc&gt; osl2.nac.uci.edu:9006</pre>
+
; * This restricts the access that the rest of the world has to
Use Xloc and Yloc that make sense to your world, i.e. close to your regions, but not adjacent. <br>replace osl2.nac.uci.edu and 9006 with the domain name / ip address and the http_listener_port of the simulator where the region is running you want to link to.
+
; * the assets of this world.
You can link to a specific region within an instance, by using the name of the region at the end, for example:  
+
; *
<pre>link-region 997 997 osl2.nac.uci.edu:9006:UCI Welcome</pre>
+
[HGAssetService]
 +
    HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
 +
</source>
  
=== Method 2  ===
+
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.
  
There is also some initial support for reading the links from a xml file.  
+
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
  
Use the console command: link-region &lt;URI&gt; [&lt;excludeList&gt;]
+
== Grid and Standalone ==
 +
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>
  
The uri can be either the path of a local xml file or a xml document on a http server.
+
= Access =
  
The format of the xml file is:
+
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.
  
<source lang="xml"><Nini>
+
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]].
<Section Name="Region1">
+
<Key Name="xloc" Value="1002"/>
+
<Key Name="yloc" Value="1006" />
+
<Key Name="externalPort" Value="9006" />
+
<Key Name="externalHostName" Value="osl2.nac.uci.edu" />
+
<Key Name="localName" Value="OSGrid-Gateway" />
+
<Key Name="real-xloc" Value="10222"/> //optional field that gives the region's real location on its home grid
+
<Key Name="real-yloc" Value="10265" /> //optional field that gives the region's real location on its home grid
+
</Section>
+
<Section Name="Region2">
+
...
+
</Section>
+
...
+
</Nini></source>
+
  
[Note] The section names can be anything you want, but they all should be different and have no spaces in the name.
+
= Previous Instructions =
  
==== ExcludeList:  ====
+
[[Installing and Running Hypergrid On OpenSimulator 0.7.3 to 0.7.5]]
  
The exclude list is a single string paramater with the format: excludeList:&lt;SectionName&gt;[;&lt;SectionName&gt;]  
+
[[Installing and Running Hypergrid On OpenSimulator 0.7.2 to 0.7]]
  
This means that while reading from the xml file any sections that are listed in the excludeList will be ignored and no HyperGrid link created for them.  
+
[[Installing and Running Hypergrid On OpenSimulator 0.6.9]]
  
This could allow, link lists to be created on a webserver that everyone could add their own regions to, and then they just make sure they add their own section name(s) to the exclude list on their own region(s).
+
= Additional References =
  
So for example, someone might create a editable online list for the up coming OpenSimulator's 2nd birthday. Which might look something like:  
+
Implemented osFunctions: [[OSSL Implemented]]
  
<source lang="xml"><Nini>
+
Enabling osFunctions: [[OSSL Enabling Functions]]
<Section Name="OSGrid-Party">
+
<Key Name="xloc" Value="1002"/>
+
<Key Name="yloc" Value="1006" />
+
<Key Name="externalPort" Value="9006" />
+
<Key Name="externalHostName" Value="osl2.nac.uci.edu" />
+
<Key Name="localName" Value="OSGrid-Gateway" />
+
</Section>
+
<Section Name="UCIGrid-Party">
+
...
+
</Section>
+
</Nini></source> I could then add my own region to the list with the section name "MW-Party". Then when I startup that region that I want to be part of this hypergrid, I use the command:  
+
<pre>"link-region &lt;URI of xml file&gt; excludeList:MW-Party"</pre>
+
This is so that my region doesn't try to create a hyper link to itself.
+
  
=== Method 3 (dynamic)  ===
+
HyperGrid Security: [[Hypergrid Security]]
  
Starting in r8193, if you're in an HG-enabled region, you'll be able to dynamically link sims, and TP there, in any one of these ways (and probably more). All you need to know is the target address, e.g. from the list below.
+
Banning Foreign Users in Hypergrid: [[Banning Foreign Users in Hypergrid]]
  
1) Type for example secondlife://ucigrid04.nacs.uci.edu:9007/ in the chat box, pull up the chat history and click on that link
+
Public HyperGrid Nodes Listing: [[Public Hypergrid Nodes]]
  
2) Pull up the map and search for things like ucigrid04.nacs.uci.edu:9007
+
Hypergrid Inventory Access: [[Hypergrid Inventory Access|Hypergrid Inventory Access (proposal)]]
  
3) Using the embedded browser visit pages that have links like '''secondlife://ucigrid04.nacs.uci.edu:9007'''/ (there's one up at http://www.ics.uci.edu/~lopes/hypergrid/test.html)
+
CATEGORY: [[:Category:Hypergrid|Hypergrid]]<br />
 
+
Again, you can link to a specific region within an instance by adding the name of that region at the end, like this: '''secondlife://ucigrid04.nacs.uci.edu:9007:Gateway 7000/'''
+
 
+
'''Important Notes'''
+
 
+
* Due to a viewer bug, you can only TP between regions that are no more than 4096 cells apart in any dimension. What this means in practice is that if you want to link to OSGrid, you must have your own regions reachable from the (10,000; 10,000) point on the map, which is where OSGrid is centered. Place your regions somewhere in the 8,000s or the 12,000s.
+
* With grid mode, methods 1 and 2 will work on both the Robust console and the region console. On the region console, linked regions will not be stored in the database and will vanish when the region is shut down. Regions that are linked on the Robust console will be persistent over restarts until they are explicitly removed with unlink-region.
+
 
+
== Listing linked regions ==
+
 
+
To see a list of all linked regions, use the following command on the console (available since 0.7.1 r/13457, also in 0.7-post-fixes):
+
<pre>show hyperlinks</pre>
+
 
+
== Unlinking regions ==
+
 
+
On the console, type for example:
+
<pre>unlink-region osl2.nac.uci.edu:9006</pre>
+
or
+
<pre>unlink-region &lt;local region name&gt;</pre>
+
 
+
Please note that region names can only have a maximum length of 32 characters when using MySQL as a database. If a linked region has a longer name, it will be truncated. The unlink-region command will only find a region, if the name is also truncated to a maximum length of 32 characters.
+
 
+
== Additional References ==
+
 
+
Implemented osFunctions: [[OSSL Implemented|OSSL Implemented]]
+
 
+
Enabling osFunctions: [[OSSL Enabling Functions|OSSL Enabling Functions]]
+
 
+
HyperGrid Security: [[Hypergrid Security|Hypergrid Security]]
+
 
+
Banning Foreign Users in Hypergrid: [[Banning Foreign Users in Hypergrid|Banning Foreign Users in Hypergrid]]
+
 
+
Public HyperGrid Nodes Listing: [[Public Hypergrid Nodes|Public Hypergrid Nodes]]
+
 
+
Hypergrid Inventory Access: [[Hypergrid Inventory Access|Hypergrid Inventory Access (proposal)]]  
+
  
CATEGORY: [[Hypergrid|Hypergrid ]]<br>
+
[[Category:Hypergrid]]

Latest revision as of 12: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