Enabling Groups

= Overview of the Group System =

What is "Group" in OpenSimulator?
Group is one of the optional functionality of OpenSimulator, which enables the users to create grid-wide(or hypergrid-wide) community in your regions. For the general knowledge about the concept of Group or how to create your in-world group, see "Group" article in SecondLife Wiki.

Components for the Group System
The group system consists of the three components: Group Service, Group Services Connector and Group Module. Group Server handles data for in-world groups(i.e. group infos, ranks or notices). In most cases, it connects to their database to persist them. On the other hand, the OpenSimulator handle in-world groups with Group Module, which implements IGroupsModule, which calls Group Service Connector, which implements IGroupsServicesConnector, to retreive data from Group Service issuing xmlrpc calls.

Thus, you will need to set up these three compornents to enable Group System in your OpenSimulator. The following sections describe how to do that. Currently there are two known Group Services: You can even create your own group system by yourself, implementing IGroupsModule or/and IGroupServicesConnector.
 * Flotsam Project :
 * SimianGrid Project :

Requirements
If you want to run group services on your own, you'll need to deploy your web applications (on Apache, IIS or such).

= XmlRpcGroups =

Database Settings
First, create your database. If you don't even know how to install or login to MySQL, see Database Settings. mysql> create database opensim_group; mysql> use opensim_group; mysql> create user 'opensim_group'@'localhost' identified by 'opensim_group_password'; mysql> grant all on opensim_group.* to 'opensim_group'@'localhost';

Getting XmlRpcGroups
Download and extract the package from the following link.

http://code.google.com/p/flotsam/wiki/XmlRpcGroups

Creating Tables
Create tables inside your newly created database. In the package, you'll find 'groups.sql'. Run it. mysql> source /(your_path_to_the_package)/groups.sql It will create the tables for groups. If it succeed, the database has seven tables now. Note that the recent version(5.X) of mysql server may fail to create them. If so, change and try again.
 * timestamp(14) to timestamp
 * TYPE=MyISAM to ENGINE=MyISAM

Deploying XmlRpcGroups PHP Application
Deploy XmlRpcGroups php application to your web server.

Configuring XmlRpcGroups
Copy 'config.php.exmple' to 'config.php'. This file will be the configuration file for gorup service. At lease, you need to fill in following properties like that: $dbName = "opensim_group"; $dbHost = "localhost"; $dbPort = 3306; $dbUser = "opensim_group"; $dbPassword	="opensim_group_password"; Optionally, you can set these parameters to ensure the security of xmlrpc service: $groupWriteKey = 'group_write_key'; $groupReadKey = 'group_read_key'; Note that if you want to enable UTF-8 characters in group descriptions, ranks or notices, you need to write this line in somewhere(between "") in config.php file to prevent them from getting garbled: $xmlrpc_internalencoding = 'UTF-8'

Configuring Your OpenSimulator
Open OpenSim.ini file. In [Groups] section, you'll find some properties. Change them so that it will look like that: [Groups] ;# {Enabled} {} {Enable groups?} {true false} false ;; Enables the groups module Enabled = true

;# {Module} {Enabled:true} {Groups module to use? (Use GroupsModule to use Flotsam/Simian)} {} Default ;; This is the current groups stub in Region.CoreModules.Avatar.Groups. ;; All the other settings below only really apply to the Flotsam/SimianGrid ;; GroupsModule. ;; This module can use a PHP XmlRpc server from the Flotsam project at   ;; http://code.google.com/p/flotsam/ ;; or from the SimianGrid project at http://code.google.com/p/openmetaverse Module = GroupsModule

;# {MessagingEnabled} {Module:GroupsModule} {Is groups messaging enabled?} {true false} true ;MessagingEnabled = true

;# {MessagingModule} {MessagingEnabled:true} {Module to use for groups messaging} {GroupsMessagingModule} GroupsMessagingModule MessagingModule = GroupsMessagingModule

;# {ServicesConnectorModule} {Module:GroupsModule} {Service connector to use for groups} {XmlRpcGroupsServicesConnector SimianGroupsServicesConnector} XmlRpcGroupsServicesConnector ;; Service connectors to the Groups Service as used in the GroupsModule. Select one depending on   ;; whether you're using a Flotsam XmlRpc backend or a SimianGrid backend ServicesConnectorModule = XmlRpcGroupsServicesConnector

;# {GroupsServerURI} {Module:GroupsModule} {Groups Server URI} {} ;; URI for the groups services ;; e.g. http://yourxmlrpcserver.com/xmlrpc.php for Flotsam XmlRpc ;; or http://mygridserver.com:82/Grid/ for SimianGrid GroupsServerURI = "http://localhost/(context_path_to_deployed_xmlrpc_service)/xmlrpc.php"

;# {NoticesEnabled} {Module:GroupsModule} {Enable group notices?} {true false} true ;; Enable Group Notices ; NoticesEnabled = true

;; This makes the Groups modules very chatty on the console. ;DebugEnabled = false

;; XmlRpc Security settings. These must match those set on your backend ;; groups service if the service is using these keys XmlRpcServiceReadKey   = group_read_key XmlRpcServiceWriteKey  = group_write_key

As of OpenSimulator 0.7.1.X, you will need to uncomment MessagingModule or ServicesConnectorModule line even if you are using GroupsMessagingModule or XmlRpcGroupsServicesConnector(#5543).

= SimianGrid =

http://code.google.com/p/openmetaverse/wiki/Installation