Setting up a Standalone OpenSim Server from Scratch

OpenSimulator-Logo
These notes will describe how to set up a “Standalone” OpenSimulator (OpenSim) server on Windows from scratch… using the latest stable version or even the very latest “Dev master” experimental version. They are intended to quickly get you going with the latest version of OpenSim and set up key features to link it to the Hypergrid and provide a basis for further customization. Welcome to the Metaverse.

Use SQLite or MySQL

OpenSim can run with a number of different SQL compatible data base systems (SQLite, MySQL, MSSQL, PostgresSQL/PGSQL). A very simple SQLite version can be used for simple Standalone setups, and MySQL is popular and allows more features.

Advance Planning – Deciding on Key Names

Before you start, decide on a few things that you will be asked to type in on the first run of OpenSim…

  1. gridname which may contain spaces
  2. gridnick is a short nickname, try to keep it all lower case and no spaces
  3. welcome will be a web page URL that will show as a splash screen in viewers. If you don’t give this a rather ugly pink page and error message will show in viewers. If you cannot think of a suitable URL, just try using http://opensimulator.org as a stop gap
  4. Region Name for your initial (or only) region
  5. Estate Name for an initial “Estate” to which a group of regions can be attached to manage some properties all together. You can use the same name as your Grid name if you wish.
  6. Avatar First and Last Names for an avatar to act as the primary initial Estate, Region owner and administrator for the OpenSim setup.
  7. Password for the first avatar.
  8. E-mail address for the first avatar.

Obtain the Latest Stable OpenSim Pre-compiled Distribution

The latest version of OpenSim that is considered stable is always available in a pre-compiled form via http://opensimulator.org/. Download this, and unzip it’s contents into a directory such as D:\VW. It may be convenient to allow for future version changes to amend the directory name that is created from “opensim-a.b.c.d” to just “opensim”.

You may wish to create a short cut to D:\VW\opensim\bin\OpenSim.exe on your desktop to launch OpenSim when its ready. Set the (advanced) properties of this shortcut to always run as administrator.

Create Necessary .ini files

You then need to set up a number of “.ini” initialisation files before OpenSim can be run. OpenSim will indicate you have not created them if they are missing when it runs.

  1. Copy a template for bin\OpenSim.ini from bin\OpenSim.ini.example. This must then be changed for your environment before OpenSim can be successfully run. The minimal changes are:
    • In the [Const] section change the BaseURL to your hots domain name or IP address. For a Standalone setup, change the PublicPort to 9000 (by convention). The PrivatePort is not used on a Standalone.
    • In the [Architecture] section you must select one of the options. For our aim here, uncomment the one for Standalone including Hypergrid, i.e., config-include\StandaloneHypergrid.ini
    • Any more absolutely required before first run?
  2. Copy bin\config-include\StandaloneCommon.ini from
    bin\config-include\StandaloneCommon.ini.example. The minimal changes are:

    • In the [GridInfoService] section change the gridname, gridnick and provide a suitable “welcome” URL.
    • Any more absolutely required before first run?
  3. Copy bin\config-include\FlotsamCache.ini from
    bin\config-include\FlotsamCache.ini.example.
    [This step is not essential, but will save one warning on the OpenSim.exe console.]

Keep the amended files in a handy location for future updates.

Firewall

The chosen “PublicPort” (by convention port 9000 for a standalone) must be open for access from outside your firewall.

First Run

Run bin\OpenSim.exe as administrator… perhaps using the shortcut it was suggested you create earlier… and answer the questions as the prompts appear…

  1. Create First Region (makes a file named bin\Regions\Region.ini which can subsequently be edited or added to).
  2. Create First Estate.
  3. Specify initial Avatar first and last names to own the initial Estate and Region created.
  4. backup
  5. quit

Now restart your standalone by running OpenSim.exe again. Use an OpenSim-compatible viewer such as Firestorm, Singularity or Alchemy and ensure you do choose the variant that supports OpenSim (as well as Second Life). Add your grid/standalone URL (http://host:9000/) to the Grid List for the viewer via the “Preferences” -> “OpenSim/Grids” tab or via the viewer “Grid Manager”. Log in with the chosen main avatar and set a home position for that avatar. Click on the address bar and select “About Land” to change the name of the default “Your Parcel” to a suitable name for the arrival region.

You are now all set and avatars from other grids should be able to visit you via Hypergrid to your http://host:9000/ “Grid URL”/login URL.

Save Your Work and test

Copy all d:\VW\bin\*.db files and keep them as a backup in a convenient location. You can use these to restore the setup if you have subsequent errors or problems with changes you make.

You can backup your region contents and terrain and your avatar inventory contents using..

change region 
save oar -.oar
save iar   /  -firstname-lastname>.iar
    [The oar and iar files will be placed in the OpenSim bin folder by default]

Adding Useful and Commonly Required Features

After you have a basic working setup, you can add other facilities that are commonly available on OpenSim sites. The are not enabled by default, but are available with facilities built into the core OpenSim distribution by amending the .ini files. Some require that you are using a data base other than the simple inbuilt SQLite one.

  1. In bin\config-include\StandaloneCommon.ini alter the line for defining the properties of an arrival region by amending “Region_Welcome_Area” to “<Region_your_region_name> = “DefaultRegion, FallbackRegion”
  2. Further [GridInfoService] settings can be specified.. e.g. to point to a single simple web page URL with information on your OpenSim setup.
        welcome = 
        about = 
        register = 
        help = 
        password = 
    

    Note that the “economy” “helper uri” (different to “help” above) needs more active database link support often using a OHP script and cannot be a simple link to a web page.

The Following OpenSim features do not work if the simple inbuilt SQLite data base is used. Use MySQL or an alternative to be able to add these.

  1. User Profiles cannot be enabled with the default SQLite database, but if you switch to using MySQL, User Profiles can be enabled by setting config-include\StandaloneCommon.ini [UserProfilesService] enabled=true and uncommenting the OpenSim.ini [UserProfiles] ProfileServiceURL line.
  2. Groups cannot be enabled with the default SQLite database, but if you switch to using MySQL, Groups can be enabled by setting the OpenSim.ini [Groups] section as follows:
    [Groups]
        Enabled = true
        LevelGroupCreate = 0
        Module = "Groups Module V2"
        ServicesConnectorModule = "Groups HG Service Connector"
        LocalService = local
        MessagingEnabled = true
        MessagingModule = "Groups Messaging Module V2"
        NoticesEnabled = true
        MessageOnlineUsersOnly = true
    
  3. Offline Instant Messaging (IM) cannot be enabled with the default SQLite database, but if you switch to using MySQL, Offline IM can be enabled by setting the OpenSim.ini [Messaging] section as follows:
    [Messaging]
        OfflineMessageModule = "Offline Message Module V2"
        MessageTransferModule = HGMessageTransferModule
        MuteListModule = MuteListModule
        LureModule = HGLureModule
        ForwardOfflineGroupMessages = true
    
  4. [Note – does not seem to work at 26-Aug-2015 for Standalones] Provide a suitable destination guide link. Hyperica.com provides a suitably formatted sample that can also act as a default. Specify this by adding a line in the config-include\StandaloneCommon.ini [GridInfoService] section…
    [GridInfoService]
        DestinationGuide = "http://www.hyperica.com/destination-guide/"
    

Creating Your Own Binaries for the Latest Dev Master version

An alternative to using the latest stable version of OpenSim, for the adventurous, is to use the very latest bleeding-edge development version.

Obtain Latest OpenSim Version

  1. http://opensimulator.org/viewgit/?a=shortlog&p=opensim
  2. Unzip it to a directory such as, for example, D:\Temp
  3. Run a Windows Shell such as Command Prompt
  4. Select the disk your unzip directory is on, for example with D:\
  5. cd Temp\opensim…
  6. runprebuild.bat
  7. compile.bat
  8. Move the bin directory in the content that is created in created in D:\cd Temp\opensim… to D:\VW
  9. The rest of D:\Temp\opensim… can be discarded

Prior Requirements .NET Framework

The OpenSim compile and build tools require the Microsoft .NET 4 framework. One way to get that is to install the free Microsoft Visual Studio Community Edition.

While covering .NET requirements… when first run OpenSim may also require .NET 3.5 if its not already on your system. This may be needed from some precompiled libraries which OpenSim uses. If its needed, Windows usually pops up an offer to load that for you. Allow that to download and install. Then run OpenSim again.

OpenSim-needs-NET-3-5

Getting Help with OpenSim

  • You can get a feel for OpenSim and join in the community by creating an free avatar on OSGrid.
  • Issues with OpenSim can be checked and reported via the OpenSim Mantis.
  • An OpenSim users mailing list can be useful to ask questions or see if others are having similar issues.
This entry was posted in OpenSim and tagged , . Bookmark the permalink.

5 Responses to Setting up a Standalone OpenSim Server from Scratch

  1. Isis Ophelia says:

    Thank you so much Austin for this helpful tutorial. I have shared it in my G+ Community Standalone Diva + Simonastick:
    https://plus.google.com/u/0/communities/113101583047680567619

    I installed the compiled binares from the link you provide above and had some problems.

    One is that if I do not uncomment the Allowed Viewers I was not able to use any viewer. Now that I removed the ;; I can connect with FS and Singularity. But still not able to connect with Stored Inventory. I tried listing Stored Inventory (former Second Inventory) as allowed viewer, but that didn’t help.

    Another problem was that I was not able to resize tiny pieces. I make shoes and when I used my resizer script, the sculpted shoes imploded. Reading around I found out that I must uncomment the non physical minimum size to be 0.001. Otherwise default minimum it’s 0.010 (SL minimum). I did and now my resizer works fine.

    And the 3rd one it’s that it is not possible to import a shape.xlm using the viewer. It used to work in prior OS versions. So it seems that this must be a general opensim problem. I tested to import a shape in Kitely and in my standalone using diva-r25950 and the viewer could not import a shape. I have submitted a Mantis for this, but not sure if I submitted it properly. As a non-tech person I have no idea if importing a shape should be under Inventory, or simulator issues? I guess if I submitted it wrong, no dev will care of it.

    Austin would you please explain how to replace the default SQL to MYSQL? I’ve been reading around, the problem it’s that most tutorials are outdated. Would be a big help, if you could add this to your tutorial.

    • bat says:

      Glad you found the notes helpful Isis.. even though there are issues.

      The second and third issues you mention clearly are related to the core OpenSim distribution and are indeed best addressed on the OpenSim Mantis or on the OpenSim users mailing list.

      The first is most peculiar and not something I have seen. You mention “;;”… the relevant line only has one “;”. I am running now with all my grids (Robust and Standalone) with the AllowedClients line commented out as in the OpenSim.ini.example.

      ;; Regular expressions for controlling which client versions are accepted/denied.
      ;; An empty string means nothing is checked.

      ;AllowedClients = “”
      ;DeniedClients = “”

      This is the first of what I hope will be a couple of blog posts…

      1. Simple Standalone using SQLite from Scrach (this one)

      2. Robust Grid using MYSQL and Diva Wifi front end from Scratch ( next up)

      3. Saving and recreating a grid (not simple backup and restore), archiving and moving content from SQLite to MySQL.

    • bat says:

      I cannot see a Mantis entry recently on http://opensimulator.org/mantis on point 3.

      The shape.xml export and import feature was an Imprudence viewer feature as I recall. Imprudence has been replaced with Kokua viewer as a bit more u to date while still being based on the old style “V1” viewer.

      http://wiki.kokuaviewer.org/wiki/Imprudence:Content_Backup

      Obtain the Kokua viewer here… http://wiki.kokuaviewer.org/wiki/Kokua/Downloads

  2. Isis Ophelia says:

    This is my submission to the Mantis:
    http://opensimulator.org/mantis/view.php?id=7672

    A while back only Imprudence was able to import/export shapes, skins in the meantime also Singularity, Kokua and Firestorm got such feature. I tested to import my shape with all 3 viewers, none of them worked. I attached the error I get to the above Mantis. Having accounts in many grids, to be able to import the shape its a big time saver.

    About allowed clients. In the opensim.ini the line looks like this:
    ; AllowedClients = “Imprudence|Singularity|Avination|Firestorm”

    Orignally the line was empty “” and commented out. I then removed the ; and added the viewers I use (like shown above). I assumed that way visitors with copybot viewers wouldnt be able to connect to my Standalone, but then I could not log into my Standalone with any of them. So I added the ; in front of the line again. Now I can use the viewers. Except Stored Inventory can’t log in. Shall I submit a Mantis about this and under which Category would that go please?

    With Diva D2 I can connect with Stored Inventory. I have been looking around in the diva opensim.ini and also diva preferences but I was not able to find out why Divas lets me log with SI and Opensim Binaries doesn’t.

    Very happy to read that you will be adding mysql to your tutorial. Thank you bunches in advance 🙂

Comments are closed.