Open Source Platform
for interconnected virtual worlds

Getting Started with Taiga

From Rex community wiki

Contents

What is Taiga?

Taiga is a virtual world server set. This enviroment is especially desinged to be used with the realXtend Naali viewer. Taiga release 0.0.2 includes the following servers/components.

OpenSim

OpenSimulator is a 3D Application Server. It can be used to create a virtual environment (or world) which can be accessed through a variety of clients, on multiple protocols. In the Taiga server set OpenSim needs the following modules in order to work correctly with the realXtend client and servers.
  • ModCableBeach - ModCB modifies OpenSim's functionality so it knows how to communicate with the CableBeach servers/services.
  • ModRex - ModRex is important to the OpenSim community mainly because, like the base opensim code base itself, the RealXtend viewer is open source and breaks away from some of the key contraints imposed by the LLviewer, such as inability to create meshes, shadows, realistic avatars, and advanced lighting effects. ModRex while not part of the viewer, is the glue that connects the viewer to the opensim trunk code. For more info visit the OpenSim Wiki page of ModRex.
OpenSim logo

CableBeach

Cable Beach provides a way to connect end users, virtual world simulations, trusted services, and untrusted third party services together. Please read the CableBeach wikis Core 1.0 document for more information!

  • World Service - The administrator and gatekeeper for a world. All user logins to the world must come through the world service. OpenSim simulation will connect and register its region to this service.
  • Inventory Service - This service provides outside asset and inventory servers to OpenSim.

OpenID Provider

This is a simple web server that provides OpenID identities. You need to have an realXtend OpenID identity from this server to utilize the new OpenID login method that is supported in Naali and Taiga.

Future plans are to support 3rd party OpenID providers so you wont be limited to using ours.
OpenID logo

Taiga services and default ports

Here you will find short descriptions of all the Taiga services. If you want to host a Taiga server for everyone to access over the internet, the following gives you details what ports to open in you host machines firewall.

OpenID Provider

Port: 8010 (TCP)
Services: Creating accounts and authenticating user for WorldServer

WorldServer

Port: 8002 (TCP)
Services: Identity and Login
Service URLs:

InventoryServer

Port: 8004 (TCP)
Services: Inventory and Assets

OpenSim with ModreX and ModCableBeach

OpenSim port: 9000 (TCP/UDP)
ModreX port: 7000 (UDP)
Services: World Streaming and Simulation

  • No logins are done directly to OpenSim or ModreX. The WorldServer will contact OpenSim for preparing a login for avatars.

OpenSim GridServer

Port: 8001 (TCP)
Services: Receives region registrations from simulators. Passes those regions to WorldServer

Getting Taiga 0.0.2

  1. Download the following zip file http://dev.realxtend.org/gf/download/frsrelease/118/59/realXtend-Taiga-0.0.2.zip
  2. Extract the zip file to your preferred location. For example C:\Program Files\realXtend_Taiga_0.0.2 This tutorial will refer to this place as <taiga_installation_folder>.

Setting up MySql

Getting MySQL

  1. Download: Go to http://dev.mysql.com/downloads/ and download the free community edition.
  2. Install: This tutorial will not go into detail how to accomplish this, help for installing MySql.
    • Note: In the configuration part you should check the option "Include Bin Directory in PATH" and set a new root password. If you only intend running Naali/Taiga localy and just quickly testing it out, using "root" as the password will make configuring the servers a lot easier and faster because that is the pre-set password in the example-configs. Of course for security reasons this is not recommended. Instuctioins how to set your password to the configs can be found from #Configuring Taiga.
MySql logo

Creating needed databases to MySQL

Open your Windows command prompt and do the following. One line is one command in the command prompt, press enter after every line as we proceed.

mysql -u root -p
Enter password: <insert_your_root_password_here>
  • Note: If this mysql command doesn't work you did not include it in the OS PATH during installation. You need to go manually to the installation directory and find mysql.exe usually located in the bin folder.
CREATE DATABASE TaigaOpenSim;
CREATE DATABASE TaigaIdentity;
CREATE DATABASE TaigaModrex;
CREATE DATABASE TaigaWebdav;
  • Note to database names: You can set all the database names as you like, but you will have to go through some trouple to modify all the config files. This is discussed later in this tutorial. Recommendation would be to use the given database names for easy setup.

Configuring Taiga

Using provided example configs

Example configs have been made to ease the configuring process. These configs will suite most users purposes out of the box. These configs for example enable OpenSim to use CableBeach servers for identity, assets and inventory and to configure CableBeach servers to use custom Taiga handling for realXtend, Google Account and OpenID authentications etc.

<taiga_installation_folder>\example-configs folder contains all needed config files in project subfolders. You can modify all the configs in example-configs subfolders and set them to correct places with this <taiga_installation_folder>\set-example-configs.bat after you are done modifying them to suit your setup.

Do I really need to modify all those configs?

If your setup meets all of the demands below, you don't need to modify any configs to get the servers running. Just run <taiga_installation_folder>\set-example-configs.bat then go ahead and jump into #Running Taiga segment.

   1. You are using MySql 
   2. 'root' user with 'root' password
   4. You have created and named all databases as was suggested in 
      "Creating_needed_databases_to_MySQL" segment above

Seems that I need to edit the config files, what now?

This part of the tutorial tells you what these configs include and what you need or can modify to affect your Taiga servers behavior. Uncommenting in the instructions means removing the ; from the beginning of the discussed line. Commenting mean that you add the ; to beginning of the line.

Every config file has its own box. This box lists the location of the file, then starts listing lines from the config file that you need to find in order to modify the settings. Instructions and suggestions on how to modify the referred line are in bulleting points following the line.

Here is an example of the syntax:

Example_Config_Filename.xxx

Location: <taiga_installation_folder>\some_folder

You need or can to find this line from the config file
  • You need to set x to accomplish y

Use a text editor of your liking to open these files. I suggest using the find function of your text editor because some of the config files are really long and may be complicated to read, quick button shortcut to find is usually Ctrl+f. You can search the whole line that is given here if the configs are still unmodified.

IdentityServer.ini

Example-config location: <taiga_installation_folder>\example-configs\OpenIDProvider
Runtime location: <taiga_installation_folder>\openidprovider\OpenIdProviderData

ListenPort = 8010
  • If you want to change the listening port for this server.
;Hostname = my.host.com
  • By default not used. Uncomment and set your own value to enable feature.
ConnectionString = "Data Source=localhost;Database=TaigaIdentity;User ID=root;Password=root"
  • User ID if you are not using the root user to access the database.
  • Password if your password is not root
  • Data Source if your mysql database if not located on the same machine that you are running Taiga on.
  • Database if you renamed the OpenID Providers database anything other than cbidentity
[NHibernate]
  • Under this section there is information how to use alternative database systems in your OpenID Provider. Supported systems via nhibernate are MsSql, MySql and SQLite.


WorldServer.ini and InventoryServer.ini

Example-config location: <taiga_installation_folder>\example-configs\CableBeach
Runtime location: <taiga_installation_folder>\cablebeach\CableBeachData

ListenPort = 8002 // This port definition is in WorldServer.ini
ListenPort = 8004 // This port definition is in InventoryServer.ini
  • If you want to change the listening port for this server.
;Hostname = my.host.com
  • By default not used. Uncomment and set your own value to enable feature.

[OpenSimUserDatabase] in WorldServer.ini
[OpenSimAssetDatabase] and [OpenSimInventoryDatabase] in InventoryServer.ini

Under these segments there is information how to use alternative database systems in your CableBeach WorldServer. Supported database types are MsSql, MySql, SQLite and PgSql.

DatabaseServer = localhost
  • DatabaseServer if your mysql database if not located on the same machine that you are running Taiga on.
DatabaseUser = root
  • DatabaseUser if you are not using the root user to access the database.
DatabasePass = root
  • DatabasePass if your password is not root
DatabaseName = OpenSim
  • DatabaseName if you renamed the OpenSim database anything other than OpenSim
DatabaseType = mysql // For migrations
  • DatabaseType if you want to use something else than mysql. Remember this must be same type as DatabaseEngine from above.
ConnectionString = "Data Source=localhost;Database=TaigaOpenSim;User ID=root;Password=root;" // For migrations
  • ConnectionString if you want to use different database, username or password. Remember these need to be same as DatabaseUser, DatabasePass and DatabaseName from above

Important for world library and default assets migrations
From InventoryServer.ini find [OpenSimAssetDatabase] segment. The keys DefaultAssetsDescriptionFile value will have the default location of assets that are put into the opensim databases assets table and it will create the default world inventory called 'OpenSim Library'. Do NOT change this if you have not relocated the folder. You can add more default assets by going into the folder and making your own subfolder, editing the roots xml file and making your subfolder its own xml file. You can find more info on how to do this from OpenSim wiki or from cablebeach\CableBeachData\DefaultAssets\README.txt. New assets fill be updated to database on the next startup of InventoryServer.exe.


WorldServer.ini extensions
SimpleServicesGetter
  • This must be enabled in order for WebDAV inventory to work in OpenID or Google Account login. Not recommended to comment out.
RexLogin
  • This must be enabled in order for realXtend authentication to work. And in order to send ogre rendering flag to viewer in login response. Not recommended to comment out.
RexOpenIDLogin
  • This must be enabled in order fore OpenID style authentication when logging in the with Naali viewer into your server. Not recommended to comment out.
;OpenIDLogin
  • If you disable RexOpenIDLogin you can enable this extension. This section will enable normal openid login via browser that will give you a connection string that you can use in SL viewers (RexOpenIDLogin generates this too if you login via browser and not Naali). If you enable this and disable RexOpenIDLogin you wont have automatic login when doing weblogin in the Naali viewers. Not recommended to comment in if you want to use Naali to its full potential in your server. OpenIDLogin and RexOpenIDLogin cannot be enabled at the same time.


InventoryServer.ini extensions
WebDAVFrontend
  • Enable if you want OpenID logins to get webdav inventory. Not recommended to comment out.
Under [WebDAV] segment ConnectionString
  • If you have WebDAVFrontend extension enabled (enable as default) you will need to modify this connection string to suit your setup.
OpenSimAssets
  • Not recommended to disable, alternative is SimpleAssets that is not completed feature.
OpenSimFilesystem
  • Not recommended to disable, alternative is SimpleFilesystem that is not completed feature.

It's not recommended to disable all of the extension that are enabled as default. This will most likely make the server not function properly as basically all of the extensions in InventoryServer.ini are mandatory.


WorldServer.Services.txt

Runtime location: <taiga_installation_folder>\cablebeach\CableBeachData

This file defines services that the WorldServer will use and capabilities that the user needs to get during the login process. All three segments point to the CableBeach InventoryServer at localhost:8003. For more information how service capability retrieval works visit this CableBeach wiki page.

If you have set a hostname for your InventoryServer in its .ini file, replace localhost with that hostname.


OpenSim.ini

Example-config location: <taiga_installation_folder>\example-configs\OpenSim
Runtime location: <taiga_installation_folder>\opensim

[Startup] segment

storage_connection_string="Data Source=localhost;Database=TaigaOpenSim;User ID=root;Password=root;";
  • You need to modify the database connections in similar fashion as you did with CableBeach config files. Ctrl+F in your text editor to find the lines. Next to these lines you will find more detailed instructions what to set and if you want to use something else than mysql. For additional help modifying OpenSim.ini please read this OpenSim Wiki page.

[Network] segment

grid_server_url = "http://127.0.0.1:8001"
  • Change IP/port if needed. This refers to the CableBeach WorldServer.
user_server_url = "http://127.0.0.1:8002"
  • Change IP/port if needed. This refers to the CableBeach WorldServer.
asset_server_url = "http://127.0.0.1:8004"
  • Change IP/port if needed. This refers to the CableBeach InventoryServer.
inventory_server_url = "http://127.0.0.1:8004"
  • Change IP/port if needed. This refers to the CableBeach InventoryServer.
Note: If you have set a hostname for WorldServer and/or InventoryServer, please put those hostnames to replace "127.0.0.1" Also grid url should be teh external IP of you machine, same as you have set to opensim\Regions\regions.ini as ExternalHostName.
Note: There are several other modifications in the OpenSim.ini to make OpenSim work with the other Taiga servers. If you already have a pre-existing OpenSim.ini config file it will not work as is. We recommend to use the example config and change your preferred OpenSim setting there.


modrex.ini

Example-config location: <taiga_installation_folder>\example-configs\ModreX
Runtime location: <taiga_installation_folder>\opensim\addon-modules\ModreX\config

db_connectionstring = "MySQLDialect;MySqlDataDriver;Data Source=localhost;
Database=TaigaModrex;User ID=root;Password=root"
  • Modify the wanted ModreX database, username and password. This has nothing to do with OpenSim database so you can use for example sqlite here if you want.


GridServer_Config.xml

Example-config location: <taiga_installation_folder>\example-configs\OpenSim
Runtime location: <taiga_installation_folder>\opensim

If you have modified one the following from the defaults dbuser: root dbpass: root dbname: TaigaOpenSim, inventory port 8004, world port 8002 you will have to open this xml file and set correct values to these parameters:

default_asset_server="http://127.0.0.1:8004/"
default_user_server="http://127.0.0.1:8002/"
database_provider="OpenSim.Data.MySQL.dll"
database_connect="Data Source=localhost;Database=TaigaOpenSim;User ID=root;Password=root;"
http_port="8001"
  • If you want to change the http listening port of the GridServer. Possible but not recommended as you will need to search through all the other configs and change the default to your new port. This tutorial will not list all the places this port is referenced.

Running Taiga

Server executables

You will find a start.bat from <taiga_installation_folder> this will first shut down all Taiga servers if they are open with force process kill, do 'quit' commands to OpenSim consoles if you want a graceful terminations. Next it will start up all the servers in the correct order. Stop.bat is also usefull if you want to shut down all the servers quickly.

The server executables are located as follows

<taiga_installation_folder>\openidprovider\OpenIDProvider.exe
<taiga_installation_folder>\cablebeach\InventoryServer.exe
<taiga_installation_folder>\cablebeach\WorldServer.exe
<taiga_installation_folder>\opensim\OpenSim.exe
<taiga_installation_folder>\opensim\OpenSim.Grid.GridServer.exe

Can I expect crashes on first run?

If all the database connections and cross-reference IP/hostnames in config files are correct you should experience only one crash on running start.bat. The CableBeach WorldServer will crash on first run when it doesn't find a certificate from CableBeachData folder. It will create the certificate and shut down. This will only happen once.


OK, now that you know this we are ready to start. Go ahead and execute start.bat!


Database Migrations

All of the Taiga servers can handle database migrations themselves. You don't need to run any stock OpenSim.Grid servers to migrate databases for CableBeach servers.

CableBeach will check migrations on every run and also check that all default assets are in the assets table. On the first run InventoryServer will also create the OpenSim Library with the default assets.

  • If you see any database/mysql errors you most propably configured mysql or the server configs in a wrong way. Please double check especially the database names and the root password. Refer to #Configuring Taiga how to set these in the configs.

Configuring OpenSim on the first startup

OpenSim will ask you information about the region and the master avatar. Input your preferred information. Every prompt has a default value if you don't set your own. The default value is in the [ ] brackets.

Here is a example how to fill this information. Empty inputs means you just push enter and it will use the default value.

New region name []: My Test Region
Region UUID [a84eedc7-c3b1-4934-89e3-7b1b5c0520e2]:
Region Location [1000,1000]:
Internal IP address [0.0.0.0]:
Internal port [9000]:
Allow alternate ports [False]:
External host name [SYSTEMIP]:
Master Avatar UUID [00000000-0000-0000-0000-000000000000]:
Master Avatar first name (enter for no master avatar) []:

Regions.ini

Location: <taiga_installation_folder>\opensim\Regions

InternalAddress = 127.0.0.1
  • This is the IP address that OpenSim passes internally. If your having problems connecting locally try setting it to your LAN IP that is something like 192.168.0.101
ExternalHostName = SYSTEMIP
  • This is the IP address that OpenSim passes outside. If your having problems connecting locally try setting it to your LAN IP that is something like 192.168.0.101. If your server is intended to get connections outside LAN then you probably need to set your hostname or internet IP to this field. Please visit OpenSim wiki/manuals for more help if you are having connection problems.

Successful startup?

If all the consoles are running and you did not get any shutdowns you probably just have launched the Taiga servers successfully. Check all the consoles for the following prints

OpenSim console should have 'Region (YourRegionName) #' printed at the bottom
GridServe console should have 'Grid#' printed at the bottom
WorldServer console should have 'CB WorldServer:' printed at the bottom
InventoryServer does not have any console command, so as long as this console is open its correct
OpenIDProvider console should have 'Taiga OpenID Provider is now running...' printed at the bottom

Picture tells more than a thousand words. If you see this you are in the right track. All servers started without errors. After this you can try to login, so proceed to the next part of this tutorial.

Click to enlarge...

Login with the realXtend Naali 0.0.2 viewer

Refer to our wiki page Getting Started with Naali on how to install and run Naali.

OpenSim authentication

Create a OpenSim account

In the CableBeach WorldServer console you can create new user accounts for OpenSim authentication and login. You can get all the console command of the WorldServer by running 'help' command. Run 'create user' to make a new OpenSim account. Here is an example:
CB WorldServer: create user
   First name [Default]: John
   Last name [User]: Doe
   Password: test
   Email []:
[UserManager] Created new user John Doe to database

Login with Naali using your OpenSim account

OpenSim authentication can be found from the second tab of the login widget in the Naali 0.0.2 viewer.

OpenSim login

  1. Firstname and lastname into username field.
  2. Password
  3. Your Taiga CableBeach World server IP and port
    • When testing locally use 127.0.0.1
    • Default CableBeach WorldServer port is 8002
  4. Click the Connect button

OpenID authentication

Create a Taiga OpenID identity

In order to login with OpenID to the world you need to make an account to the Taiga OpenID Provider.
  1. Make sure your OpenID Provider is up and running properly
  2. Open your web browser
  3. Find out your LAN IP address
    • Windows command promptand type ipconfig *
  4. Go to url http://192.168.0.199:8010/signup
    • Replace the url IP with your own LAN IP *
    • OpenID Providers default port is 8010

* You can't make OpenID account to http://127.0.0.1:8010 because you will bump into this WorldServer error in the future

94558 [7] ERROR - Error while performing discovery on: "http://127.0.0.1:8010/johndoe": DotNetOpenAuth.Messaging.ProtocolException: The URL 'http://127.0.0.1:8010/johndoe' is rated unsafe and cannot be requested this way.

  1. Fill the fields
    • You can leave the Defaul Inventory field empty.
  2. Read and agree to the terms and privacy policy.
  3. Click Signup button

OpenID signup

Login with Naali using your Taiga OpenID identity

OpenID authentication can be found from the first tab of the login window in the Naali 0.0.2 viewer. Insert the following and hit connect.

OpenID login in Naali step 1

After clicking connect you will see a new window of the internal Web Browser of Naali. Input your OpenID identity you just created to the text input line and click the Sign In button.

OpenID login in Naali step 2

You will be redirected to OpenID Providers login page where you need to give your password. Check the remember me checkbox. Click the Login button to proceed.

OpenID login in Naali step 3

After hitting login the web browser should close and Naali will start the login into the world.

  • Note: If you get a black page with error message after hitting Login don't close the browser, just write http://127.0.0.1:8002/login again in the address bar (or gt it from the address bar drop menu that stores your browsing history). Insert your OpenID identity again and hit Sing In. Now that you checked 'remember me' last time, OpenID Provider wont ask your password again and your login should be successful on the second try. This error comes kind of randomly and we are trying to fix it, but this is the temporary fix in the 0.0.2 release.

Google Account login

Follow same steps as #Login with Naali using your Taiga OpenID identity until you are in the login page of your Taiga WorldServer, click the Google image to login with Google Account. This will redirect you to a Google page where it will ask you of your Google Account email and password. After this Google will ask if you want the world server to have access to your account to do login with it. Grant this and Naali should start logging you into the world.

Be assured that your personal Google account information is not exposed to anyone here. Google is only used as a OpenID Provider, to get some kind of identity for you in order to join the world.

Login successful?

You now should be seeing a simple default terrain with a small island and water surrounding it. You avatar in the center and your firstname and lastname on top of it.

Login succesfull!