Standalone mode without Grid
Preparation and General
The basis for this page are the sample files “OpenSim.ini.example” and “StandaloneCommon.ini.example” contained in OpenSim 0.9.2. Apart from the “GridCommon.ini” configuration, which is of course superfluous here, the rest of the tutorial is still valid. Here is only described what is configured additionally or differently in standalone mode compared to a region server on an external grid.
Hypergrid visitors are shown the domain name or the IP address as well as the port number of the grid as an appendix to their avatar name. This information is saved permanently when you first visit a third-party grid and later can only be changed manually by admins of the respective third-party grid in their databases. Therefore, it is highly recommended to get a fixed domain (or subdomain), or if necessary a fixed IP address, for your own standalone grid previous to the first hypergrid jump! You should also have specified a port number by then.
OpenSim.ini
[Const]
The URL (domain, subdomain or, if necessary, a fixed IP address) of the standalone grid has to be configured in many places, as well as the TCP/IP port number for visitors. To simplify the configuration, constants are used in the sample files OpenSim.ini.example and StandaloneCommon.ini.example:
BaseHostname = "hg.my-private-grid.eu"
PublicPort = 8002
The port number doesn’t matter. If several standalone grids or other programs are operated on the same computer, they must not use the same port.
[Network]
Also here we choose the method with the central constant, which is less prone to errors.
http_listener_port = "${Const|PublicPort}"
[Messaging]
OfflineMessageModule = "Offline Message Module V2"
MuteListModule = "MuteListModule"
[Groups]
Note: Groups do not work with the SQLite database! For performance reasons, I recommend MySQL or MariaDB anyway, see below. With SQLite set “Enabled = false” here.
Enabled = true
Module = "Groups Module V2"
ServicesConnectorModule = "Groups HG Service Connector"
LocalService = "local"
HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
MessagingModule = "Groups Messaging Module V2"
“MessageOnlineUsersOnly” must always be set to “true” for V2 groups.
MessageOnlineUsersOnly = true
[UserProfiles]
ProfileServiceURL = "${Const|BaseURL}:${Const|PublicPort}"
[Architecture]
The “Standalone Hypergrid” operating mode is selected here. The variant without hypergrid is not considered in these instructions.
Include-Architecture = "config-include/StandaloneHypergrid.ini"
Further configuration options in OpenSim.ini, which are not mentioned on this page, are configured according to the descriptions in the main part of the tutorial.
Note: The [DataSnapshot], [Search], [XBakes] sections would configure interfaces to external programs. In contrast to larger grids, these external services are not available in a pure OpenSim standalone configuration, so that their configuration must be omitted here.
StandaloneCommon.ini
In contrast to GridCommon.ini, where the information for connection to a grid is configured, a standalone is a (simple) grid itself. The grid is therefore now configured here.
[DatabaseService]
Select a database here. Instead of the default “SQLite” for performance reasons MySQL is strongly recommended and also described here in the tutorial. A standalone has all the assets and inventory data in the database, which quickly becomes one gigabyte or more! This section is configured exactly as in the GridCommon.ini, see there.
[Hypergrid]
We want to allow hypergrid here, so the semicolons must be removed. The values of the constants are set centrally in OpenSim.ini.
HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"
[GridService]
If visitors do not specify a region, they should be directed to a default region. Supposed there are two regions, “Welcome Area” and “Steampunky”. Note that the region name must be preceded by a “Region_”! Then you could put:
Region_Welcome_Area = "DefaultRegion, DefaultHGRegion" Region_Steampunky = "FallbackRegion"
The export of files from the grid using the viewer can be prohibited overall. Hopefully it is clear that this weak “protection” only works with legal viewers. Also note the section [HGInventoryAccessModule]!
ExportSupported = true
[LoginService]
The welcome message given here is displayed in the chat when you enter the grid.
WelcomeMessage = "Welcome in my Steampunk dream world!"
[GridInfoService]
If you select a new grid in modern OpenSim viewers, the necessary connection parameters are automatically transferred to the viewer. The information to be transferred follows here.
Long name of the grid:
gridname = "My Steampunk dream world"
Grid nick, short name of the Grid:
gridnick = "Steampunk"
Web page which is displayed on the login screen of the viewer. This website does not have to be on the same server as the grid, nor does the domain have to match.
welcome = "https://mywebsite.eu/steampunk/index.html"
[GatekeeperService]
If you set the following to “false”, all hypergrid visitors always land on the default regions that are specified in the [GridService] section.
AllowTeleportsToAnyRegion = true
It is also possible to completely lock out Hypergrid visitors. If the standalone is generally operated without Hypergrid, it is better to select the appropriate architecture (Standalone.ini) in OpenSim.ini. Temporary bans, for example during renovation work, can be set here. The parameter would be “false” and the semicolon would then have to be removed.
; ForeignAgentsAllowed = true
[HGAssetService]
The export or import of certain types of assets can be prohibited here, the permitted values are listed in the comment. Here is the original example without questioning if that makes sense.
; DisallowExport ="LSLText"
; DisallowImport ="LSLBytecode"
[HGInventoryAccessModule]
The export of objects from the grid via the hypergrid can be prohibited overall. Hopefully it is clear that this weak “protection” only works with legal viewers. Also note the section [GridService]!
; OutboundPermission = true
The inventory is not accessible in the Hypergrid so that no foreign servers can access it without authorization. Exceptions are objects that were previously copied or moved to the “Suitcase” folder. As a reminder, “Unavailable” is added to the folder names with inaccessible objects during the trip.
If the standalone is operated with the old Hypergrid protocol 1.0 without this protection, this message would be false and should then be deactivated with “false”. (This only switches the message on or off, not the protective effect.)
; RestrictInventoryAccessAbroad = true
Note: If desired, the Hypergrid protocol 1.0 can be selected in the “StandaloneHypergrid.ini” file. See there in the [HGInventoryService] section and change the selection to “OpenSim.Services.InventoryService.dll:XInventoryService”.
[UserProfilesService]
The service for displaying user profiles is deactivated in the sample file (set to “false”), for whatever reason. When visitors or friends look at the profile in the viewer, without this feature an error message is displayed. Then you’d better show an empty profile if someone doesn’t like to fill out a profile…
Enabled = true
Administration
Without additional software, OpenSim has no web interface where, for example, new residents could apply for an account. If you need additional accounts on your standalone grid, they will be created in the OpenSim command line console. You will then be asked for the required information. At first the start coordinate for standalone grids must be X=1000, Y=1000, even if something else was configured as “DefaultRegion” above.
create user
Many other administration tasks are also possible there. In addition to the commands known for region servers, see now also the commands listed in the section “ROBUST Service Commands”.