Standalone-Betrieb ohne Grid
Vorbereitung und Allgemeines
Basis für diese Seite sind die in OpenSim 0.9.3 enthaltenen Beispieldateien „OpenSim.ini.example“ und „StandaloneCommon.ini.example“. Abgesehen von der hier natürlich überflüssigen „GridCommon.ini“ Konfiguration ist die restliche Anleitung weiterhin gültig. Hier wird nur beschrieben, was im Standalone-Betrieb zusätzlich oder anders konfiguriert wird im Vergleich zu einem Regionenserver an einem externen Grid.
Hypergrid-Besucher bekommen den Domainnamen oder die IP-Adresse sowie die Portnummer des Grids als Anhängsel an ihren Avatarnamen angezeigt. Diese Information wird beim ersten Besuch eines fremden Grids dauerhaft gespeichert und kann später nur noch manuell durch Admins der jeweiligen fremden Grids in deren Datenbanken geändert werden. Deshalb ist es sehr empfehlenswert, vor dem ersten Hypergrid-Sprung für das eigene Standalone-Grid eine feste Domain (oder Subdomain), notfalls eine feste IP-Adresse zu besorgen! Auch eine Portnummer solltest du bis dahin festgelegt haben.
OpenSim.ini
[Const]
Die URL (Domain, Subdomain oder notfalls eine feste IP-Adresse) des Standalone-Grids muss an vielerlei Stellen konfiguriert werden, ebenso die TCP/IP Portnummer für Besucher. Um die Konfiguration zu vereinfachen, werden in den Beispieldateien OpenSim.ini.example und StandaloneCommon.ini.example Konstanten verwendet:
BaseHostname = "hg.mein-privates-grid.eu"
PublicPort = 8002
Die Portnummer ist egal. Werden mehrere Standalone-Grids oder andere Programme auf dem selben Rechner betrieben, dürfen diese nicht den selben Port verwenden.
[Network]
Wir wählen auch hier die Methode mit der zentralen Konstante, das ist weniger fehleranfällig.
http_listener_port = "${Const|PublicPort}"
[Messaging]
OfflineMessageModule = "Offline Message Module V2"
MuteListModule = "MuteListModule"
[Groups]
Hinweis: Gruppen funktionieren nicht mit der SQLite Datenbank! Aus Performancegründen empfehle ich aber sowieso MySQL oder MariaDB, siehe unten. Mit SQLite setze hier „Enabled = false“.
Enabled = true
Module = "Groups Module V2"
ServicesConnectorModule = "Groups HG Service Connector"
LocalService = "local"
HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
MessagingModule = "Groups Messaging Module V2"
„MessageOnlineUsersOnly“ muss bei V2 Gruppen immer auf „true“ stehen.
MessageOnlineUsersOnly = true
[UserProfiles]
ProfileServiceURL = "${Const|BaseURL}:${Const|PublicPort}"
[Architecture]
Hier wird der Betriebsmodus „Standalone-Hypergrid“ ausgewählt. Die Variante ohne Hypergrid ist in dieser Anleitung nicht berücksichtigt.
Include-Architecture = "config-include/StandaloneHypergrid.ini"
Weitere Konfigurationsmöglichkeiten in der OpenSim.ini, die auf dieser Seite nicht erwähnt sind, werden entsprechend den Beschreibungen im Hauptteil der Anleitung konfiguriert.
Hinweis: Die Abschnitte [DataSnapshot], [Search], [XBakes] würden Schnittstellen zu externen Programmen konfigurieren. Im Gegensatz zu größeren Grids sind diese externen Dienste in einer reinen OpenSim Standalone-Konfiguration nicht vorhanden, so dass deren Konfiguration hier entfallen muss.
StandaloneCommon.ini
Im Gegensatz zur GridCommon.ini, wo die Informationen für den Anschluss an ein Grid konfiguriert werden, ist eine Standalone selber ein (einfaches) Grid. Hier wird deshalb nun das Grid konfiguriert.
[DatabaseService]
Wähle hier eine Datenbank aus. Anstelle des Defaults „SQLite“ ist aus Performancegründen dringend MySQL empfohlen und auch hier im Tutorial beschrieben. Gerade eine Standalone hat ja die gesamten Assets und Inventardaten mit in der Datenbank, diese wird schnell ein Gigabyte groß oder mehr! Dieser Abschnitt wird genauso wie in der GridCommon.ini konfiguriert, siehe dort.
[Hypergrid]
Wir wollen hier Hypergrid erlauben, deshalb müssen die Semikolons entfernt werden. Die Werte der Konstanten werden zentral in der OpenSim.ini gesetzt.
HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"
[GridService]
Wenn Besucher keine Region angeben, sollten sie auf eine Default-Region gelenkt werden. Angenommen, es gibt zwei Regionen „Welcome Area“ und „Steampunky“. Beachte, dass den Regionsnamen ein „Region_“ vorangestellt werden muss! Dann könnte man setzen:
Region_Welcome_Area = "DefaultRegion, DefaultHGRegion" Region_Steampunky = "FallbackRegion"
Der Export von Dateien aus dem Grid mit Hilfe des Viewers kann pauschal verboten werden. Dass dieser schwache „Schutz“ nur bei legalen Viewern wirkt, ist hoffentlich klar. Beachte auch den Abschnitt [HGInventoryAccessModule]!
ExportSupported = true
[LoginService]
Die hier angegebene Willkommensbotschaft wird beim Betreten des Grids im Chat angezeigt.
WelcomeMessage = "Willkommen in meiner Steampunk Traumwelt!"
[GridInfoService]
Wenn man in modernen OpenSim Viewern ein neues Grid auswählt, werden die notwendigen Verbindungsparameter automatisch in den Viewer übernommen. Die zu übertragenden Angaben folgen hier.
Langname des Grids:
gridname = "Meine Steampunk Traumwelt"
Gridnick, Kurzname des Grids:
gridnick = "Steampunk"
Webseite, die im Login-Screen des Viewers angezeigt wird. Diese Webseite braucht nicht auf dem selben Server zu liegen wie das Grid, auch die Domain muss nicht übereinstimmen.
welcome = "https://meinewebseite.eu/steampunk/index.html"
[GatekeeperService]
Wenn man das folgende auf „false“ setzt, landen alle Hypergrid-Besucher immer auf den Defaultregionen, die im Abschnitt [GridService] angegeben sind.
AllowTeleportsToAnyRegion = true
Es ist auch möglich, Hypergrid-Besucher komplett auszusperren. Wird die Standalone generell ohne Hypergrid betrieben, sollte aber besser gleich in der OpenSim.ini die entsprechende Architecture (Standalone.ini) gewählt werden. Temporäre Verbote, beispielsweise während Umbauarbeiten, können gut hier gesetzt werden. Der Parameter wäre „false“ und das Semikolon müsste dann weg.
; ForeignAgentsAllowed = true
[HGAssetService]
Hier kann der Export oder Import bestimmter Arten von Assets verboten werden, die erlaubten Werte sind im Kommentar aufgezählt. Hier das Original-Beispiel ohne die Sinnhaftigkeit zu hinterfragen.
; DisallowExport ="LSLText"
; DisallowImport ="LSLBytecode"
[HGInventoryAccessModule]
Der Export von Objekten aus dem Grid übers Hypergrid kann pauschal verboten werden. Dass dieser schwache „Schutz“ nur bei legalen Viewern wirkt, ist hoffentlich klar. Beachte auch den Abschnitt [GridService]!
; OutboundPermission = true
Im Hypergrid ist das Inventar nicht zugänglich, damit keine fremden Server unbefugt drauf zugreifen können. Ausnahme sind Objekte, die vorher in den Ordner „Suitcase“ (Handtasche) kopiert oder verschoben wurden. Zur Erinnerung wird während der Reise in Klammern „Unavailable“ hinter den Ordnernamen mit unzugänglichen Objekten ergänzt.
Wenn die Standalone mit dem alten Hypergrid-Protokoll 1.0 ohne diesen Schutz betrieben wird, wäre diese Meldung falsch und sollte dann mit „false“ deaktiviert werden. (Dies schaltet nur die Meldung ein oder aus, nicht die Schutzwirkung.)
; RestrictInventoryAccessAbroad = true
Anmerkung: Falls gewünscht, kann das Hypergrid-Protokoll 1.0 in der Datei „StandaloneHypergrid.ini“ ausgewählt werden. Siehe dort im Abschnitt [HGInventoryService] und ändere die Auswahl auf „OpenSim.Services.InventoryService.dll:XInventoryService“.
[UserProfilesService]
Der Service zur Anzeige von User-Profilen ist in der Beispieldatei deaktiviert (auf „false“ gesetzt), warum auch immer. Wenn Besucher oder Freunde sich im Viewer das Profil anschauen, wird aber ohne dieses Feature eine Fehlermeldung angezeigt. Dann lieber ein leeres Profil anzeigen, wenn jemand kein Profil ausfüllen mag…
Enabled = true
Administration
OpenSim hat ohne zusätzliche Software kein Webinterface, wo zum Beispiel neue Bewohner einen Account beantragen könnten. Falls du auf deinem Standalone-Grid zusätzliche Accounts benötigst, werden diese in der OpenSim Kommandozeilenkonsole angelegt. Du wirst dann nach den erforderlichen Angaben gefragt. Als erstmalige Startkoordinate muss bei Standalone-Grids X=1000, Y=1000 angegeben werden, auch wenn oben als „DefaultRegion“ etwas anderes konfiguriert wurde.
create user
Auch viele andere Administrationsaufgaben sind dort möglich. Zusätzlich zu den für Regionenserver bekannten Kommandos siehe nun auch die im Abschnitt „ROBUST Service Commands“ aufgelisteten Befehle.