Server Configuration

Servers are very configurable. They can be initialized from INI style files and have many options.

You may also want to look at ServerCommandLineArgs. There's also the example configuration.

The config file is broken up into sections and options. Sections are encolsed in [brackets]. Options are a key and value separated by an equals sign.

Server Section

The most important section is the Server section. This defines the top level options for the server's Conductor class.

  • serviceNames: a comma separated list of service names. Each service name is expected to point to a section in the config file.
  • name: the name of the server.
  • connectionFactories: like the serviceNames (comma separated and pointing to a section in the file), but they define outgoing connection factories that the server can use.
  • logs: specify the logging mechanisms. Deprecated, don't use,
  • logLevel: specify the verbosity of the logging mechanism. (nonfunctional currently)
  • consolePort: (new in 0.31, optional configure an ssh console on this port that leads into the server. Must also include consoleUsers option.
  • consoleUsers: (new in 0.31) a comma separated list of username:password pairs that will be allowed to log in to the console.

Service Definition

These sections are pointed to by the serviceNames option in the main config section. They have a several generic options that apply to all services.

  • type: specify a module and class of the service to instantiate.
  • grantPermissions: This is a list of string two-tuples that specify who can use this service. The first index of the tuple is the permission type (read, reference, modify, etc), and the second is a user, group, or all.
  • denyPermissions: Works just like grantPermissions except can be used to exclude users or groups.
  • publicLocation: Specifies an alias for this service that can be used to determine if a pointer points back here.

Some options can be used on most services:

  • store: filename (maybe a directory depending on store type) of where the datastore for this service lives.
  • interfaces: interfaces that can be used to access this service remotely (over http or pb or whatnot)

Services

mv3d.server.sim.SimulationService

  • realmServers: a comma separated list of URLs that specify the realm servers this service should use.
  • storeInterval: unlike other services that use a datastore, the SimulationService stores all objects every so often as specified by this value (in seconds)

mv3d.server.directory.DirectoryService

  • directories: specifies the directories to create.

mv3d.server.realm.RealmService

  • directoryServers: a comma separated list of URLs to specify parent directory servers for this service.

mv3d.server.asset.AssetService

mv3d.server.account.AccountService

mv3d.server.login.LoginService

  • accountServices: a comma separated list of URLs to specify the account servers to authenticate users against.
  • port: the port to run the web interface on
  • docRoot: the path off of the port the web interface should use
  • ssl: on or off (if on, privKey and pubKey must be specified)
  • privKey and pubKey: specify the private and public keys for SSL.
    • Use the following to generate a self signed key:
         openssl genrsa > privkey.pem
         openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1000
      
  • templateDir: the location of the nevow templates
  • allowNewAccounts: set this to true to allow anonymous users to create new accounts.
  • In grantPermissions, the admin permission gives administrator rights to a user or group.

mv3d.server.player.PlayerService

  • simulators: the simulation servers this player server uses to get object data.
  • defaultCharGen: deprecated.

mv3d.server.network.PBServer

  • port: the port to run the perspective broker protocol on.
  • authenticators: comma separated URLs pointed to valid login services to authenticate users against.
  • publish: a comma separated list of service names to publish interfaces for.

Connection Factories

mv3d.net.client.PBConFactory

  • defaultCredentials: the default login to use when connecting externally.
  • localAliases: a comma separated list of URLs that specify aliases for the local host.
  • loginServices: a comma separated list of URLs that will act as login services.

Back to TechnicalDocumentation.