diff --git a/opensim-herbal3d/Dockerfile-herbal3d b/opensim-herbal3d/Dockerfile-herbal3d index 6fd33a5..731635f 100644 --- a/opensim-herbal3d/Dockerfile-herbal3d +++ b/opensim-herbal3d/Dockerfile-herbal3d @@ -1,7 +1,8 @@ # OpenSim with Herbal3d region modules # docker build -t opensim-herbal3d . -FROM mono:5 as built +FROM mono:6 as built +# FROM mono:5 as built # FROM mono:4.6 as built LABEL Version="0.1" @@ -18,7 +19,7 @@ RUN apt-get update \ cron \ mysql-client \ sqlite \ - && rm -rf /var/lib/apt/lists/* + && rm -rf /var/lib/{apt,dpkg,cache,log}/ # The simulator is run under the user name 'opensim' # (From https://stackoverflow.com/questions/27701930/add-user-to-docker-container) @@ -35,7 +36,6 @@ COPY --chown=opensim:opensim vimrc /home/opensim/.vimrc # to make the resulting layer small. RUN cd /home/opensim \ && git clone git://opensimulator.org/git/opensim \ - && rm -rf $OPENSIMDIR/.git \ && cd $OPENSIMDIR/addon-modules/ \ && git clone https://github.com/Herbal3d/HerbalCommonEntitiesCS.git \ && git clone https://github.com/Herbal3d/HerbalTransportCS.git \ @@ -49,7 +49,7 @@ RUN cd /home/opensim \ && cd $OPENSIMDIR \ && ./runprebuild.sh \ && nuget restore OpenSim.sln \ - && cp packages/*/lib/net45/* bin \ + && cp -f packages/*/lib/net45/* bin \ && msbuild \ && cd $OPENSIMDIR \ && rm -rf $OPENSIMDIR/OpenSim \ diff --git a/opensim-herbal3d/config/scripts/setEnvironment.sh b/opensim-herbal3d/config/scripts/setEnvironment.sh index 3c1195f..1bb6378 100755 --- a/opensim-herbal3d/config/scripts/setEnvironment.sh +++ b/opensim-herbal3d/config/scripts/setEnvironment.sh @@ -18,6 +18,7 @@ if [[ ! -z "$CONFIGKEY" ]] ; then for secretsFile in $OPENSIMCONFIG/$CONFIG_NAME/os-secrets.crypt $OPENSIMCONFIG/os-secrets.crypt ; do if [[ -e "$secretsFile" ]] ; then source <(ccrypt -c -E CONFIGKEY "$secretsFile") + HAVE_SECRETS=yes break; fi done diff --git a/opensim-standalone/Dockerfile-standalone b/opensim-standalone/Dockerfile-standalone index bcca87d..1e47b67 100644 --- a/opensim-standalone/Dockerfile-standalone +++ b/opensim-standalone/Dockerfile-standalone @@ -69,8 +69,8 @@ RUN cd $OPENSIMDIR \ && ./runprebuild48.sh \ && msbuild -# OpenSim.ini does an include of "config-include/Standalone.ini". -# so copy an empty version to nullfy the default configuration. +# OpenSim.ini and other INI files include from "config-include/*" +# so copy an empty versions to nullfy the default configuration. COPY --chown=opensim:opensim config-include/ $OPENSIMDIR/bin/config-include/ # Copy over any extra configuration files we're including RUN mkdir -p $OPENSIMDIR/bin/config @@ -78,6 +78,9 @@ COPY --chown=opensim:opensim config/ $OPENSIMDIR/bin/config/ # Use the default, included configuration parameters RUN cp $OPENSIMDIR/bin/OpenSim.ini.example $OPENSIMDIR/bin/OpenSim.ini +# Remove the run supression flag. If this file exists, OpenSim is not started by the run script. +RUN rm -f $OPENSIMDIR/../NOOPENSIM + WORKDIR $OPENSIMDIR/bin ENTRYPOINT [ "/home/opensim/bootOpenSim.sh" ] diff --git a/opensim-standalone/config-include/Grid.ini b/opensim-standalone/config-include/Grid.ini new file mode 100644 index 0000000..f93cc37 --- /dev/null +++ b/opensim-standalone/config-include/Grid.ini @@ -0,0 +1,3 @@ +; This file exists because this file is the default architecture include +; in OpenSim.ini. +; Look for the real configuration in bin/config which overlays settings. diff --git a/opensim-standalone/config-include/GridCommon.ini b/opensim-standalone/config-include/GridCommon.ini new file mode 100644 index 0000000..f93cc37 --- /dev/null +++ b/opensim-standalone/config-include/GridCommon.ini @@ -0,0 +1,3 @@ +; This file exists because this file is the default architecture include +; in OpenSim.ini. +; Look for the real configuration in bin/config which overlays settings. diff --git a/opensim-standalone/config-include/GridHypergrid.ini b/opensim-standalone/config-include/GridHypergrid.ini new file mode 100644 index 0000000..f93cc37 --- /dev/null +++ b/opensim-standalone/config-include/GridHypergrid.ini @@ -0,0 +1,3 @@ +; This file exists because this file is the default architecture include +; in OpenSim.ini. +; Look for the real configuration in bin/config which overlays settings. diff --git a/opensim-standalone/config-include/README b/opensim-standalone/config-include/README.md similarity index 100% rename from opensim-standalone/config-include/README rename to opensim-standalone/config-include/README.md diff --git a/opensim-standalone/config-include/StandaloneHypergrid.ini b/opensim-standalone/config-include/StandaloneHypergrid.ini new file mode 100644 index 0000000..f93cc37 --- /dev/null +++ b/opensim-standalone/config-include/StandaloneHypergrid.ini @@ -0,0 +1,3 @@ +; This file exists because this file is the default architecture include +; in OpenSim.ini. +; Look for the real configuration in bin/config which overlays settings. diff --git a/opensim-standalone/config-include/osslDefaultEnable.ini b/opensim-standalone/config-include/osslDefaultEnable.ini new file mode 100644 index 0000000..f93cc37 --- /dev/null +++ b/opensim-standalone/config-include/osslDefaultEnable.ini @@ -0,0 +1,3 @@ +; This file exists because this file is the default architecture include +; in OpenSim.ini. +; Look for the real configuration in bin/config which overlays settings. diff --git a/opensim-standalone/config/os-secrets b/opensim-standalone/config/os-secrets index 0de27fc..62ce777 100644 --- a/opensim-standalone/config/os-secrets +++ b/opensim-standalone/config/os-secrets @@ -5,7 +5,7 @@ # The configuration files look for the file 'os-secrets.crypt' and, when # found, runs 'ccrypt' using the password from the environment variable # "CONFIGKEY". So, edit this file and do: -# ccrypt -e -E CONFIGKEY < os-secrets > os-secrets.crypt +# ccrypt -e -E "$CONFIGKEY" < os-secrets > os-secrets.crypt # or (exposing the key in the bash history): # ccrypt -e -K thekey < os-secrets > os-secrets.crypt @@ -27,6 +27,6 @@ export PW_FOR_DEFAULT_ESTATE_OWNER=asoiouzkxcjkvhuqwu # Flag used to know if secrest are set export HAVE_SECRETS=true -# Did I mention that one should NEVER, NEVER, EVER checkin a version +# Did I mention that one should NEVER, NEVER, EVER check-in a version # with the real passwords in it? diff --git a/opensim-standalone/config/scripts/initializeConfig.sh b/opensim-standalone/config/scripts/initializeConfig.sh deleted file mode 100755 index 53ff3ed..0000000 --- a/opensim-standalone/config/scripts/initializeConfig.sh +++ /dev/null @@ -1,20 +0,0 @@ -#! /bin/bash -# Script that mangles OpenSim configuration files with the necessary data. -# Someone has set the environment variables before running this. - -OPENSIMBIN=${OPENSIMBIN:-/home/opensim/opensim/bin/} -CONFIG_NAME=${CONFIG_NAME:-standalone} - -CONFIGDIR=${OPENSIMBIN}/config/${CONFIG_NAME} - -sed --in-place \ - -e "s/MYSQL_DB_USER/$MYSQL_DB_USER/" \ - -e "s/MYSQL_DB_SOURCE/$MYSQL_DB_SOURCE/" \ - -e "s/MYSQL_DB_DB/$MYSQL_DB_DB/" \ - -e "s/MYSQL_DB_PASSWORD/$MYSQL_DB_PASSWORD/" \ - -e "s/PW_FOR_DEFAULT_ESTATE_OWNER/$PW_FOR_DEFAULT_ESTATE_OWNER/" \ - -e "s/DEFAULT_ESTATE_NAME/$DEFAULT_ESTATE_NAME/" \ - -e "s/DEFAULT_ESTATE_OWNER/$DEFAULT_ESTATE_OWNER/" \ - "${CONFIGDIR}/misc.ini" - - diff --git a/opensim-standalone/config/scripts/setEnvironment.sh b/opensim-standalone/config/scripts/setEnvironment.sh index 3c1195f..1bb6378 100755 --- a/opensim-standalone/config/scripts/setEnvironment.sh +++ b/opensim-standalone/config/scripts/setEnvironment.sh @@ -18,6 +18,7 @@ if [[ ! -z "$CONFIGKEY" ]] ; then for secretsFile in $OPENSIMCONFIG/$CONFIG_NAME/os-secrets.crypt $OPENSIMCONFIG/os-secrets.crypt ; do if [[ -e "$secretsFile" ]] ; then source <(ccrypt -c -E CONFIGKEY "$secretsFile") + HAVE_SECRETS=yes break; fi done diff --git a/opensim-standalone/config/scripts/updateConfigFiles.sh b/opensim-standalone/config/scripts/updateConfigFiles.sh index db850fe..cad23ff 100755 --- a/opensim-standalone/config/scripts/updateConfigFiles.sh +++ b/opensim-standalone/config/scripts/updateConfigFiles.sh @@ -4,17 +4,38 @@ # This is run before every OpenSimulator run to update changing parameters. OPENSIMBIN=${OPENSIMBIN:-/home/opensim/opensim/bin} -CONFIGDIR=${CONFIGDIR:-$OPENSIMBIN/config} + +# For this image, CONFIG_NAME is the configuration being used +CONFIG_NAME=${CONFIG_NAME:-standalone} +CONFIGDIR=${OPENSIMBIN}/config/${CONFIG_NAME} cd "$CONFIGDIR" -source ./scripts/setEnvironment.sh +source ../setEnvironment.sh # Update EXTERNAL_HOSTNAME cd "$OPENSIMBIN" -for file in $OPENSIMBIN/Regions/*.ini $CONFIGDIR/$CONFIG_NAME/Regions/*.ini ; do +for file in $OPENSIMBIN/Regions/*.ini $CONFIGDIR/Regions/*.ini ; do if [[ -e "$file" ]] ; then sed --in-place -e "s/^ExternalHostName = .*$/ExternalHostName = \"${EXTERNAL_HOSTNAME}\"/" "$file" fi done +# Add EXTERNAL_HOSTNAME to the common configuation in OpenSim.ini sed --in-place -e "s/^ *BaseHostname = .*$/ BaseHostname = ${EXTERNAL_HOSTNAME}/" "$OPENSIMBIN/OpenSim.ini" + +# If the environment variables haven't been copied into misc.ini, do it now +# If the replacement has already happened, this is a NOOP +if [[ -e "${CONFIGDIR}/misc.ini.prototype" ]] ; then + cp "${CONFIGDIR}/misc.ini.prototype" "${CONFIGDIR}/misc.ini" +fi +sed --in-place \ + -e "s/MYSQL_DB_USER/$MYSQL_DB_USER/" \ + -e "s/MYSQL_DB_SOURCE/$MYSQL_DB_SOURCE/" \ + -e "s/MYSQL_DB_DB/$MYSQL_DB_DB/" \ + -e "s/MYSQL_DB_PASSWORD/$MYSQL_DB_PASSWORD/" \ + -e "s/PW_FOR_DEFAULT_ESTATE_OWNER/$PW_FOR_DEFAULT_ESTATE_OWNER/" \ + -e "s/DEFAULT_ESTATE_NAME/$DEFAULT_ESTATE_NAME/" \ + -e "s/DEFAULT_ESTATE_OWNER/$DEFAULT_ESTATE_OWNER/" \ + "${CONFIGDIR}/misc.ini" + + diff --git a/opensim-standalone/config/setup.sh b/opensim-standalone/config/setup.sh index 6679403..849bfb7 100755 --- a/opensim-standalone/config/setup.sh +++ b/opensim-standalone/config/setup.sh @@ -1,5 +1,10 @@ #! /bin/bash # Script run when the container starts and before OpenSimulator is started +# +# The operations done here are: +# -- if first time called, setup DB and initialize variables in configuration files +# -- move sub-config specific Includes.ini into the config directory +# -- update all the configuration files with environment variables OPENSIMBIN=${OPENSIMBIN:-/home/opensim/opensim/bin} CONFIGDIR=${CONFIGDIR:-$OPENSIMBIN/config} @@ -10,23 +15,25 @@ cd "$CONFIGDIR" # This sets CONFIG_NAME which is the configuration subdirectory (like standalone) source ./scripts/setEnvironment.sh +# If this is the first time run, do database setup and some one-time configuration updates if [[ ! -e "$FIRSTTIMEFLAG" ]] ; then cd "$CONFIGDIR" # Do any database account and db creation ./scripts/initializeDb.sh - # Add environment variables to configuration files - ./scripts/initializeConfig.sh - # Remember we've done this touch "$FIRSTTIMEFLAG" fi # Move the configuration include file into place +# This makes opensim/bin/config directory contain this INI file for this image/config +# Since all the regular configuration has been nulled out, this will be the only config +# after bin/OpenSimDefaults.ini and bin/OpenSim.ini cd "$CONFIGDIR" if [[ -e "${CONFIG_NAME}/Includes.ini" ]] ; then cp "${CONFIG_NAME}/Includes.ini" . fi # Do any update to configuration files that happens each start +# This updates bin/OpenSim.ini and Regions/*.ini with needed values cd "$CONFIGDIR" ./scripts/updateConfigFiles.sh diff --git a/opensim-standalone/config/standalone/Includes.ini b/opensim-standalone/config/standalone/Includes.ini index 883c6e0..22ea27f 100755 --- a/opensim-standalone/config/standalone/Includes.ini +++ b/opensim-standalone/config/standalone/Includes.ini @@ -1,10 +1,17 @@ ; This file is moved into the bin/config directory where it includes ; all the configuration from these directories. +; This file is read after OpenSimDefault.ini and OpenSim.ini +; Note that config-include/Standalone.ini and the other configuration +; files are nulled out so this becomes the only inclusion of +; configuration files after OpenSim.ini. [Startup] ; Region definitions are in this directory (rather than 'bin/Regions') regionload_regionsdir = "config/standalone/Regions" [Architecture] + Include-osslDefaultEnable = "config/standalone/config-include/osslDefaultEnable.ini" + ; 'osslDefaultEnable.ini' includes the now empty 'bin/config-include/osslEnable.ini.ini'. + ; The next line includes the 'osslEnable.ini' from this configuration. Include-osslEnable = "config/standalone/config-include/osslEnable.ini" Include-Architecture = "config/standalone/config-include/Standalone.ini" ; 'Standalone.ini' is usually a copy of the default 'Standalone.ini.example' which diff --git a/opensim-standalone/config/standalone/config-include/Grid.ini b/opensim-standalone/config/standalone/config-include/Grid.ini new file mode 100644 index 0000000..9520b7c --- /dev/null +++ b/opensim-standalone/config/standalone/config-include/Grid.ini @@ -0,0 +1,63 @@ +;; +;; Please don't change this file. +;; All optional settings are in GridCommon.ini.example, +;; which you can copy and change. +;; + +[Includes] + Include-Common = "config-include/GridCommon.ini" + +[Modules] + AssetServices = "RegionAssetConnector" + InventoryServices = "RemoteXInventoryServicesConnector" + GridServices = "RegionGridServicesConnector" + AvatarServices = "RemoteAvatarServicesConnector" + NeighbourServices = "NeighbourServicesOutConnector" + AuthenticationServices = "RemoteAuthenticationServicesConnector" + AuthorizationServices = "LocalAuthorizationServicesConnector" + PresenceServices = "RemotePresenceServicesConnector" + UserAccountServices = "RemoteUserAccountServicesConnector" + AgentPreferencesServices= "RemoteAgentPreferencesServicesConnector" + GridUserServices = "RemoteGridUserServicesConnector" + SimulationServices = "RemoteSimulationConnectorModule" + EntityTransferModule = "BasicEntityTransferModule" + InventoryAccessModule = "BasicInventoryAccessModule" + LandServices = "RemoteLandServicesConnector" + MapImageService = "MapImageServiceModule" + SearchModule = "BasicSearchModule" + MuteListService = "RemoteMuteListServicesConnector" + + LandServiceInConnector = true + NeighbourServiceInConnector = true + SimulationServiceInConnector = true + LibraryModule = true + +[SimulationDataStore] + LocalServiceModule = "OpenSim.Services.SimulationService.dll:SimulationDataService" + +[EstateDataStore] + LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService" + +[AssetService] + LocalGridAssetService = "OpenSim.Services.Connectors.dll:AssetServicesConnector" + +[GridService] + LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" + ; for the LocalGridServicesConnector which is used by the Remote one + StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" + NetworkConnector = "OpenSim.Services.Connectors.dll:GridServicesConnector" + + ; Because LocalGridServicesConnector starts this service, in grid mode we need to suppress + ; the inappropriate console commands that it registers. + SuppressConsoleCommands = true + +[LibraryService] + LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService" + LibraryName = "OpenSim Library" + DefaultLibrary = "./inventory/Libraries.xml" + +[Friends] + Connector = "OpenSim.Services.Connectors.dll:FriendsServicesConnector" + +[MapImageService] + LocalServiceModule = "OpenSim.Services.Connectors.dll:MapImageServicesConnector" diff --git a/opensim-standalone/config/standalone/config-include/GridCommon.ini b/opensim-standalone/config/standalone/config-include/GridCommon.ini new file mode 100644 index 0000000..90eaab1 --- /dev/null +++ b/opensim-standalone/config/standalone/config-include/GridCommon.ini @@ -0,0 +1,233 @@ +; This is the main configuration file for an instance of OpenSim running in grid mode + +[DatabaseService] + ; + ; ### Choose the DB + ; + + ; SQLite + Include-Storage = "config-include/storage/SQLiteStandalone.ini"; + + ; MySql + ; Uncomment these lines if you want to use mysql storage + ; Change the connection string to your db details + ; Remove SslMode=None if you need secure connection to the local mysql + ; In most cases ssl is just a pure waste of resources, specially when mySql is on same machine, and closed to outside + ;StorageProvider = "OpenSim.Data.MySQL.dll" + ;ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;SslMode=None;" + ; Uncomment this line if you are using MySQL and want to use a different database for estates + ; The usual application for this is to allow estates to be spread out across multiple simulators by share the same database. + ; Most people won't need to do this so only uncomment if you know what you're doing. + ;EstateConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;SslMode=None;" + + ; MSSQL + ; Uncomment these lines if you want to use MSSQL storage + ; Change the connection string to your db details + ; The value for server property is shown in your SQL Server Management Studio login dialog. + ; (This sample is the default of express edition) + ;StorageProvider = "OpenSim.Data.MSSQL.dll" + ;ConnectionString = "Server=localhost\SQLEXPRESS;Database=opensim;User Id=opensim; password=***;" + + ; PGSQL + ; Uncomment these lines if you want to use PGSQL storage + ; Change the connection string to your db details + ;StorageProvider = "OpenSim.Data.PGSQL.dll" + ;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;" + +[Hypergrid] + ; Uncomment the variable GatekeeperURI in this section to enable + ; Hypergrid configuration. Otherwise, ignore. + + ;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {} + ;; If this is a standalone world, this is the address of this instance. + ;; If this is a grided simulator, this is the address of the external robust server + ;; that runs the Gatekeeper service. + ;; For example http://myworld.com:9000 or http://myworld.com:8002 + ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" + + ;# {GatekeeperURIAlias} {Hypergrid} {alternative hostnames (FQDN), or IPs of the gatekeeper of this world and port} {} + ;; comma separated list, + ;; in case there was for example a dns change, etc + ; GatekeeperURIAlias = myoldname.something.org + + ;# {HomeURI} {Hypergrid} {The Home URL of this world} {} + ;; If this is a standalone world, this is the address of this instance. + ;; If this is a grided simulator, this is the address of the external robust server that + ;; runs the UserAgentsService. + ;; For example http://myworld.com:9000 or http://myworld.com:8002 + HomeURI = "${Const|BaseURL}:${Const|PublicPort}" + + ;# {HomeURIAlias} {Hypergrid} {Old http schema (default http://), hostnames (FQDN), or IPs of the gatekeeper of this world and port (default 80 or 443)} {} + ;; comma separated list, + ;; in case there was for example a dns change, etc but it is still same grid + ; HomeURIAlias = myoldname.something.org, 127.0.0.1,127.0.0.1:8043 + + +[Modules] + ;; Asset cache module. + ;; Warning this is required for several region features + + AssetCaching = "FlotsamAssetCache" + Include-FlotsamCache = "config-include/FlotsamCache.ini" + + ;; Optionally, the port for the LLProxyLoginModule module can be changed + ;Setup_LLProxyLoginModule = "9090/" + + ;; Authorization is not on by default, as it depends on external php + ;AuthorizationServices = "RemoteAuthorizationServicesConnector" + +[AssetService] + DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll" + AssetLoaderArgs = "assets/AssetSets.xml" + + ; + ; Change this to your grid-wide asset server. Do not add a slash to the end of any of these addresses. + ; + AssetServerURI = "${Const|PrivURL}:${Const|PrivatePort}" + +[InventoryService] + ; + ; Change this to your grid-wide inventory server + ; + InventoryServerURI = "${Const|PrivURL}:${Const|PrivatePort}" + ;MaxRetries = 0 + +[GridInfo] + ; + ; Change this to your grid info service + ; + GridInfoURI = "${Const|BaseURL}:${Const|PublicPort}" + +[GridService] + ; + ; Change this to your grid-wide grid server + ; + GridServerURI = "${Const|PrivURL}:${Const|PrivatePort}" + ;AllowHypergridMapSearch = true + + ;; Directory for map tile images of linked regions + ; MapTileDirectory = "./maptiles" + + ; === HG ONLY === + ;; Change this to the address of your Gatekeeper service + ;; (usually bundled with the rest of the services in one + ;; Robust server in port ${Const|PublicPort}, but not always) + Gatekeeper="${Const|BaseURL}:${Const|PublicPort}" + +[EstateDataStore] + ; + ; Uncomment if you want centralized estate data at robust server, + ; in which case the URL in [EstateService] will be used + ; + ;LocalServiceModule = "OpenSim.Services.Connectors.dll:EstateDataRemoteConnector" + +[EstateService] + EstateServerURI = "${Const|PrivURL}:${Const|PrivatePort}" + +[Messaging] + ; === HG ONLY === + ;; Change this to the address of your Gatekeeper service + ;; (usually bundled with the rest of the services in one + ;; Robust server in port ${Const|PublicPort}, but not always) + Gatekeeper = "${Const|BaseURL}:${Const|PublicPort}" + +[AvatarService] + ; + ; Change this to your grid-wide grid server + ; + AvatarServerURI = "${Const|PrivURL}:${Const|PrivatePort}" + +[AgentPreferencesService] + ; + ; Change this to your grid-wide avatar prefs server + ; + AgentPreferencesServerURI = "${Const|PrivURL}:${Const|PrivatePort}" + +[PresenceService] + ; + ; Change this to your grid-wide presence server + ; + PresenceServerURI = "${Const|PrivURL}:${Const|PrivatePort}" + +[UserAccountService] + ; + ; Change this to your grid-wide user accounts server + ; + UserAccountServerURI = "${Const|PrivURL}:${Const|PrivatePort}" + +[GridUserService] + ; + ; Change this to your grid-wide user server + ; + GridUserServerURI = "${Const|PrivURL}:${Const|PrivatePort}" + +[AuthenticationService] + ; + ; Change this to your grid-wide authentication server + ; + AuthenticationServerURI = "${Const|PrivURL}:${Const|PrivatePort}" + +[FriendsService] + ; + ; Change this to your grid-wide friends server + ; + FriendsServerURI = "${Const|PrivURL}:${Const|PrivatePort}" + +[HGInventoryAccessModule] + ; + ; === HG ONLY === + ; Change this to your server + ; accessible from other grids + ; + ;; If you want to protect your assets from being copied by foreign visitors + ;; set this to false. You may want to do this on sims that have licensed content. + ;; Default is true. + ; OutboundPermission = True + + ;; Send visual reminder to local users that their inventories are unavailable while they are traveling + ;; and available when they return. True by default. + ;RestrictInventoryAccessAbroad = True + + ;; Warning: advanced and unusual. Default is false. + ;; Enables configurations where grids share user services, including inventory, + ;; while separating regions' assets from users' assets. Asset transfer between + ;; the users' asset server and the regions' asset server is done in HG-like manner. + ; CheckSeparateAssets = false + ; RegionHGAssetServerURI = ${Const|BaseURL}:${Const|PublicPort} + + +[HGAssetService] + ; + ; === HG ONLY === + ;; The asset types that this grid can export to / import from other grids. + ;; Comma separated. + ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely: + ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText, + ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh + ;; + ;; Leave blank or commented if you don't want to apply any restrictions. + ;; A more strict, but still reasonable, policy may be to disallow the exchange + ;; of scripts, like so: + ; DisallowExport ="LSLText" + ; DisallowImport ="LSLBytecode" + +[HGFriendsModule] + ; User level required to be able to send friendship invitations to foreign users + ;LevelHGFriends = 0; + +[MapImageService] + MapImageServerURI = "${Const|PrivURL}:${Const|PrivatePort}" + +[AuthorizationService] + ; If you have regions with access restrictions + ; specify them here using the convention + ; Region_ = + ; Valid flags are: + ; DisallowForeigners -- HG visitors not allowed + ; DisallowResidents -- only Admins and Managers allowed + ; Example: + ; Region_Test_1 = "DisallowForeigners" + + +[MuteListService] + MuteListServerURI = "${Const|PrivURL}:${Const|PrivatePort}" diff --git a/opensim-standalone/config/standalone/config-include/GridHypergrid.ini b/opensim-standalone/config/standalone/config-include/GridHypergrid.ini new file mode 100644 index 0000000..5a48ac2 --- /dev/null +++ b/opensim-standalone/config/standalone/config-include/GridHypergrid.ini @@ -0,0 +1,88 @@ +;; +;; Please don't change this file. +;; All optional settings are in GridCommon.ini.example, +;; which you can copy and change. +;; + +[Includes] + Include-Common = "config-include/GridCommon.ini" + +[Startup] + WorldMapModule = "HGWorldMap" + +[Modules] + AssetServices = "RegionAssetConnector" + InventoryServices = "HGInventoryBroker" + GridServices = "RegionGridServicesConnector" + AvatarServices = "RemoteAvatarServicesConnector" + NeighbourServices = "NeighbourServicesOutConnector" + AuthenticationServices = "RemoteAuthenticationServicesConnector" + AuthorizationServices = "LocalAuthorizationServicesConnector" + PresenceServices = "RemotePresenceServicesConnector" + UserAccountServices = "RemoteUserAccountServicesConnector" + AgentPreferencesServices= "RemoteAgentPreferencesServicesConnector" + GridUserServices = "RemoteGridUserServicesConnector" + SimulationServices = "RemoteSimulationConnectorModule" + EntityTransferModule = "HGEntityTransferModule" + InventoryAccessModule = "HGInventoryAccessModule" + LandServices = "RemoteLandServicesConnector" + FriendsModule = "HGFriendsModule" + MapImageService = "MapImageServiceModule" + UserManagementModule = "HGUserManagementModule" + SearchModule = "BasicSearchModule" + MuteListService = "RemoteMuteListServicesConnector" + + LandServiceInConnector = true + NeighbourServiceInConnector = true + SimulationServiceInConnector = true + LibraryModule = true + + Setup_EntityTransferModule = disabled + Setup_WorldMapModule = disabled + +[SimulationDataStore] + LocalServiceModule = "OpenSim.Services.SimulationService.dll:SimulationDataService" + +[EstateDataStore] + LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService" + +[AssetService] + LocalGridAssetService = "OpenSim.Services.Connectors.dll:AssetServicesConnector" + HypergridAssetService = "OpenSim.Services.Connectors.dll:HGAssetServiceConnector" + +[InventoryService] + LocalGridInventoryService = "OpenSim.Region.CoreModules.dll:RemoteXInventoryServicesConnector" + +[GridService] + LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" + StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" + + NetworkConnector = "OpenSim.Services.Connectors.dll:GridServicesConnector" + + ; Needed to display non-default map tile images for linked regions + AssetService = "OpenSim.Services.Connectors.dll:AssetServicesConnector" + + HypergridLinker = true + AllowHypergridMapSearch = true + SuppressConsoleCommands = true + +[LibraryService] + LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService" + LibraryName = "OpenSim Library" + DefaultLibrary = "./inventory/Libraries.xml" + +[Friends] + Connector = "OpenSim.Services.Connectors.dll:FriendsServicesConnector" + +[Messaging] + MessageTransferModule = HGMessageTransferModule + LureModule = HGLureModule + +[HGInstantMessageService] + LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInstantMessageService" + GridService = "OpenSim.Services.Connectors.dll:GridServicesConnector" + PresenceService = "OpenSim.Services.Connectors.dll:PresenceServicesConnector" + UserAgentService = "OpenSim.Services.Connectors.dll:UserAgentServiceConnector" + +[MapImageService] + LocalServiceModule = "OpenSim.Services.Connectors.dll:MapImageServicesConnector" diff --git a/opensim-standalone/config/standalone/config-include/Standalone.ini b/opensim-standalone/config/standalone/config-include/Standalone.ini index 127b073..3610f11 100644 --- a/opensim-standalone/config/standalone/config-include/Standalone.ini +++ b/opensim-standalone/config/standalone/config-include/Standalone.ini @@ -5,12 +5,12 @@ ;; [Modules] - AssetServices = "LocalAssetServicesConnector" + AssetServices = "RegionAssetConnector" InventoryServices = "LocalInventoryServicesConnector" NeighbourServices = "NeighbourServicesOutConnector" AuthenticationServices = "LocalAuthenticationServicesConnector" AuthorizationServices = "LocalAuthorizationServicesConnector" - GridServices = "LocalGridServicesConnector" + GridServices = "RegionGridServicesConnector" PresenceServices = "LocalPresenceServicesConnector" UserProfilesServices = "LocalUserProfilesServicesConnector" UserAccountServices = "LocalUserAccountServicesConnector" @@ -37,6 +37,8 @@ [AssetService] LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService" + ; For RegionAssetConnector + LocalGridAssetService = "OpenSim.Services.AssetService.dll:AssetService" [InventoryService] LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService" diff --git a/opensim-standalone/config/standalone/config-include/StandaloneCommon.ini b/opensim-standalone/config/standalone/config-include/StandaloneCommon.ini index a4be88e..517edd5 100644 --- a/opensim-standalone/config/standalone/config-include/StandaloneCommon.ini +++ b/opensim-standalone/config/standalone/config-include/StandaloneCommon.ini @@ -10,14 +10,16 @@ ; MySql ; Uncomment these lines if you want to use mysql storage - ; Change the connection string to your db details + ; Change the connection string to your db detail + ; Remove SslMode=None if you need secure connection to the local mysql + ; In most cases ssl is just a pure waste of resources, specially when mySql is on same machine, and closed to outside ;StorageProvider = "OpenSim.Data.MySQL.dll" - ;ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;" + ;ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;SslMode=None;" ; Uncomment this line if you are using MySQL and want to use a different database for estates. ; The usual application for this is to allow estates to be spread out across multiple simulators by share the same database. ; Most people won't need to do this so only uncomment if you know what you're doing. - ;EstateConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;" + ;EstateConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;SslMode=None;" ; MSSQL ; Uncomment these lines if you want to use MSSQL storage @@ -34,17 +36,9 @@ ;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;" [Hypergrid] - ; Uncomment the variables in this section only if you are in + ; Uncomment the variable GatekeeperURI to enable ; Hypergrid configuration. Otherwise, ignore. - ;# {HomeURI} {Hypergrid} {The Home URL of this world} {} - ;; If this is a standalone world, this is the address of this instance. - ;; If this is a grided simulator, this is the address of the external robust server that - ;; runs the UserAgentsService. - ;; For example http://myworld.com:9000 or http://myworld.com:8002 - ;; This is a default that can be overwritten in some sections. - ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" - ;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {} ;; If this is a standalone world, this is the address of this instance. ;; If this is a grided simulator, this is the address of the external robust server @@ -53,17 +47,32 @@ ;; This is a default that can be overwritten in some sections. ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" + ;# {GatekeeperURIAlias} {Hypergrid} {alternative hostnames (FQDN) or IPs of the gatekeeper of this world and port (default 80 or 443 if entry starts with https://)} {} + ;; comma separated list, + ;; this is to allow this world to identify this entries also as references to itself + ;; entries can be unsecure url (host:port) if using ssl, direct login url if diferent, old grid url, etc + ; GatekeeperURIAlias = myoldname.something.org, 127.0.0.1,127.0.0.1:8043 + + ;# {HomeURI} {Hypergrid} {The Home URL of this world} {} + ;; If this is a standalone world, this is the address of this instance. + ;; If this is a grided simulator, this is the address of the external robust server that + ;; runs the UserAgentsService. + ;; For example http://myworld.com:9000 or http://myworld.com:8002 + ;; This is a default that can be overwritten in some sections. + HomeURI = "${Const|BaseURL}:${Const|PublicPort}" + + ;# {HomeURIAlias} {Hypergrid} {alternative hostnames (FQDN), or IPs of the home service of this world and port (default 80 or 443)} {} + ;; comma separated list, + ;; see GatekeeperURIAlias + ; HomeURIAlias = myoldname.something.org, 127.0.0.1,127.0.0.1:8043 + [Modules] - ;; Choose one cache module and the corresponding config file, if it exists. - ;; Copy the config .example file into your own .ini file and alter that - ;; We recommend the use of the FlotsamAssetCache since this is most actively maintained. + ;; Asset cache module. + ;; Warning this is required for several region features AssetCaching = "FlotsamAssetCache" Include-FlotsamCache = "config-include/FlotsamCache.ini" - ;AssetCaching = "CenomeMemoryAssetCache" - ;Include-CenomeCache = "config-include/CenomeCache.ini" - ;; Authorization is not on by default, as it depends on external php ;AuthorizationServices = "LocalAuthorizationServicesConnector" @@ -100,15 +109,12 @@ ;; Persistent When the simulator is shutdown, the region is signalled as offline but left registered on the grid. ;; ;; For example: - Region_Welcome_Area = "DefaultRegion, FallbackRegion" + Region_Welcome_Area = "DefaultRegion, DefaultHGRegion" ;; Allow supporting viewers to export content ;; Set to false to prevent export ExportSupported = true - ; === HG ONLY === - ;; If you have this set under [Hypergrid], no need to set it here, leave it commented - ; GatekeeperURI="${Const|BaseURL}:${Const|PublicPort}" [LibraryModule] ; Set this if you want to change the name of the OpenSim Library @@ -116,10 +122,8 @@ [LoginService] WelcomeMessage = "Welcome, Avatar!" - ;; If you have Gatekeeper set under [Hypergrid], no need to set it here, leave it commented - ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" - SRV_HomeURI = "${Const|BaseURL}:${Const|PublicPort}" + SRV_HomeURI = "${Hypergrid|HomeURI}" SRV_InventoryServerURI = "${Const|BaseURL}:${Const|PublicPort}" SRV_AssetServerURI = "${Const|BaseURL}:${Const|PublicPort}" SRV_ProfileServerURI = "${Const|BaseURL}:${Const|PublicPort}" @@ -146,23 +150,30 @@ ;; Set minimum fee to publish classified ; ClassifiedFee = 0 + ;; If the region requested at login is not found and there are no default or fallback regions + ;; online or defined in section [GridService], try to send user to any region online + ;; this similar to legacy (was disabled on 0.9.2.0) + ;; you should set this to false and define regions with Default and possible Fallback flags + ;; With this option set to true, users maybe sent to regions they where not supposed to be, or even know about + ;AllowLoginFallbackToAnyRegion = true + ; Basic Login Service Dos Protection Tweaks - ; ; - ; ; Some Grids/Users use a transparent proxy that makes use of the X-Forwarded-For HTTP Header, If you do, set this to true - ; ; If you set this to true and you don't have a transparent proxy, it may allow attackers to put random things in the X-Forwarded-For header to - ; ; get around this basic DOS protection. + + ;; Some Grids/Users use a transparent proxy that makes use of the X-Forwarded-For HTTP Header, If you do, set this to true + ;; If you set this to true and you don't have a transparent proxy, it may allow attackers to put random things in the X-Forwarded-For header to + ;; get around this basic DOS protection. ; DOSAllowXForwardedForHeader = false - ; ; - ; ; The protector adds up requests during this rolling period of time, default 10 seconds + + ;; The protector adds up requests during this rolling period of time, default 10 seconds ; DOSRequestTimeFrameMS = 10000 - ; ; - ; ; The amount of requests in the above timeframe from the same endpoint that triggers protection + ;; + ;; The amount of requests in the above timeframe from the same endpoint that triggers protection ; DOSMaxRequestsInTimeFrame = 5 - ; ; - ; ; The amount of time that a specific endpoint is blocked. Default 2 minutes. + ;; + ;; The amount of time that a specific endpoint is blocked. Default 2 minutes. ; DOSForgiveClientAfterMS = 120000 - ; ; - ; ; To turn off basic dos protection, set the DOSMaxRequestsInTimeFrame to 0. + + ;; To turn off basic dos protection, set the DOSMaxRequestsInTimeFrame to 0. [FreeswitchService] ;; If FreeSWITCH is not being used then you don't need to set any of these parameters @@ -248,6 +259,11 @@ ; this is the entry point for all user-related HG services ; uas = ${Const|BaseURL}:${Const|PublicPort}/ + ;; a http page for grid status + ;GridStatus = ${Const|BaseURL}:${Const|PublicPort}/GridStatus + ;; a RSS page for grid status + ;GridStatusRSS = ${Const|BaseURL}:${Const|PublicPort}/GridStatusRSS + [MapImageService] ; Set this if you want to change the default ; TilesStoragePath = "maptiles" @@ -328,14 +344,8 @@ ;; to block this info from being exposed. ; ShowUserDetailsInHGProfile = True -[HGInventoryService] - ;; If you have this set under [Hypergrid], no need to set it here, leave it commented - ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" [HGAssetService] - ;; If you have this set under [Hypergrid], no need to set it here, leave it commented - ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" - ;; The asset types that this grid can export to / import from other grids. ;; Comma separated. ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely: @@ -349,10 +359,6 @@ ; DisallowImport ="LSLBytecode" [HGInventoryAccessModule] - ;; If you have these set under [Hypergrid], no need to set it here, leave it commented - ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" - ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" - ;; If you want to protect your assets from being copied by foreign visitors ;; uncomment the next line. You may want to do this on sims that have licensed content. ;; true = allow exports, false = disallow exports. True by default. @@ -367,9 +373,7 @@ ;LevelHGFriends = 0; [Messaging] - ; === HG ONLY === - ;; If you have this set under [Hypergrid], no need to set it here, leave it commented - ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" + [EntityTransfer] ;; User level from which local users are allowed to HG teleport. Default 0 (all users) diff --git a/opensim-standalone/config/standalone/config-include/StandaloneHypergrid.ini b/opensim-standalone/config/standalone/config-include/StandaloneHypergrid.ini index e305972..6265bd0 100644 --- a/opensim-standalone/config/standalone/config-include/StandaloneHypergrid.ini +++ b/opensim-standalone/config/standalone/config-include/StandaloneHypergrid.ini @@ -8,12 +8,12 @@ WorldMapModule = "HGWorldMap" [Modules] - AssetServices = "HGAssetBroker" + AssetServices = "RegionAssetConnector" InventoryServices = "HGInventoryBroker" NeighbourServices = "NeighbourServicesOutConnector" AuthenticationServices = "LocalAuthenticationServicesConnector" AuthorizationServices = "LocalAuthorizationServicesConnector" - GridServices = "LocalGridServicesConnector" + GridServices = "RegionGridServicesConnector" PresenceServices = "LocalPresenceServicesConnector" UserAccountServices = "LocalUserAccountServicesConnector" AgentPreferencesServices= "LocalAgentPreferencesServicesConnector" @@ -53,7 +53,7 @@ [AssetService] LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService" - ; For HGAssetBroker + ; For RegionAssetConnector LocalGridAssetService = "OpenSim.Services.AssetService.dll:AssetService" HypergridAssetService = "OpenSim.Services.Connectors.dll:HGAssetServiceConnector" @@ -73,7 +73,6 @@ LocalServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" [GridService] - ; LocalGridServicesConnector needs this LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" Realm = "regions" StorageProvider = "OpenSim.Data.Null.dll" diff --git a/opensim-standalone/config/standalone/config-include/osslDefaultEnable.ini b/opensim-standalone/config/standalone/config-include/osslDefaultEnable.ini new file mode 100644 index 0000000..3ecf3c5 --- /dev/null +++ b/opensim-standalone/config/standalone/config-include/osslDefaultEnable.ini @@ -0,0 +1,235 @@ +; Enable OSSL functions. +; Including this file in a region's set of INI files, causes the OpenSimulator +; specific functions to be enabled. +; See http://opensimulator.org/wiki/Category:OSSL_Functions for a description of OSSL functions +; do not edit this file. +; copy the line you want to change and paste it on osslEnable.ini, then change there + + +[OSSL] + ; Allow the use of os* functions (some are always available) + AllowOSFunctions = true + + ; Allow the user of mod* functions. This allows a script to pass messages + ; to a region module via the modSendCommand() function and is used by some + ; modules to extend the scripting language. + AllowMODFunctions = true + + ; Allow the use of LightShare functions. + ; The setting enable_windlight = true must also be enabled in the [LightShare] section. + AllowLightShareFunctions = true + + ; Send function permission error to owner if true, to all if false + PermissionErrorToOwner = false + + ; Function Threat level + ; Several functions have a predefined threat level, one of: None, VeryLow, Low, Moderate, High, VeryHigh, Severe. + ; See http://opensimulator.org/wiki/Threat_level for more information on these levels. + ; Blanket enabling the ossl functions is dangerous and we do not recommend setting higher + ; than 'Low' unless you have a high level of trust in all the users that can run scripts + ; in your simulator. It is safer to explicitly allow certain types of user to run + ; higher threat level OSSL functions, as detailed later on. + ; This setting defines the highest level allowed to execute + OSFunctionThreatLevel = VeryLow + + ; The threat level can be replaced by more detailed rules by lines of the form + ; Allow_FunctionName = parameters + ; To use the default threat level coment the respective line + ; parameters can be: + ; 'false' disables the function. + ; 'true' enables for everyone + ; or to enable for individuals or groups, set it to a comma separated list. This checks + ; against the owner of the object containing the script. + ; The comma separated entries in the list may be one of: + ; "GRID_GOD" -- enable for users with UserLevel >= 200 + ; "GOD" -- enable for users with rights to be god (local or grid) + ; "ACTIVE_GOD" -- enable for users that are present and with active god power + ; "ESTATE_MANAGER" -- enable for estate manager + ; "ESTATE_OWNER" -- enable for estate owner + ; "PARCEL_OWNER" -- enable for parcel owner + ; "PARCEL_GROUP_MEMBER" -- enable for any member of the parcel group + ; uuid -- enable for specified ID (may be avatar or group ID) + ; from this we can also create macros that can be include in the list as + ; ${OSSL|macroname} see examples below + + ; parcel macros + ; Allowing ossl functions for anyone owning a parcel can be dangerous especially if + ; a region is selling or otherwise giving away parcel ownership. By default, parcel + ; ownership or group membership does not enable OSSL functions. Uncomment the + ; appropriate line below to allow parcel ownership and groups to do restricted + ; OSSL functions. It might be better to check the list below and edit the ones + ; to enable individually. + osslParcelO = "" + osslParcelOG = "" + ; osslParcelO = "PARCEL_OWNER," + ; osslParcelOG = "PARCEL_GROUP_MEMBER,PARCEL_OWNER," + + ; NPC macros + ; These can be mis-used so limit use to those you can trust. + osslNPC = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + + ; The threat level also can be replaced by lines of the form + ; Creators__FunctionName = comma separated list of UUIDs + ; this will enable the function for users that are the script creators and owners of the prim + + + ; ************************************************* + + ; ThreatLevel None + Allow_osGetAgents = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetAvatarList = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + ;Allow_osGetGender = true + ;Allow_osGetHealth = true + ;Allow_osGetHealRate = true + Allow_osGetNPCList = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + ;Allow_osGetRezzingObject = true + ;Allow_osGetSunParam = true + Allow_osNpcGetOwner = ${OSSL|osslNPC} + Allow_osSetSunParam = ESTATE_MANAGER,ESTATE_OWNER + Allow_osTeleportOwner = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + ;Allow_osWindActiveModelPluginName = true + + ; ThreatLevel Nuisance + Allow_osSetEstateSunSettings = ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetRegionSunSettings = ESTATE_MANAGER,ESTATE_OWNER + + ; ThreatLevel VeryLow + Allow_osEjectFromGroup = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osForceBreakAllLinks = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osForceBreakLink = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetWindParam = true + Allow_osInviteToGroup = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osReplaceString = true + Allow_osSetDynamicTextureData = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetDynamicTextureDataFace = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetDynamicTextureDataBlend = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetDynamicTextureDataBlendFace = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetParcelMediaURL = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetParcelMusicURL = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetParcelSIPAddress = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetPrimFloatOnWater = true + Allow_osSetWindParam = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osTerrainFlush = ESTATE_MANAGER,ESTATE_OWNER + Allow_osUnixTimeToTimestamp = true + + ; ThreatLevel Low + Allow_osAvatarName2Key = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osFormatString = true + Allow_osKey2Name = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osListenRegex = true + Allow_osLoadedCreationDate = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osLoadedCreationID = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osLoadedCreationTime = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osMessageObject = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osRegexIsMatch = true + Allow_osGetAvatarHomeURI = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osNpcSetProfileAbout = ${OSSL|osslNPC} + Allow_osNpcSetProfileImage = ${OSSL|osslNPC} + Allow_osDie = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + + ; ThreatLevel Moderate + Allow_osDetectedCountry = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osDropAttachment = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osDropAttachmentAt = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetAgentCountry = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetGridCustom = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetGridGatekeeperURI = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetGridHomeURI = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetGridLoginURI = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetGridName = true + Allow_osGetGridNick = true + Allow_osGetNumberOfAttachments = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetRegionStats = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetSimulatorMemory = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetSimulatorMemoryKB = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osMessageAttachments = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osReplaceAgentEnvironment = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetSpeed = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetOwnerSpeed = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osRequestURL = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osRequestSecureURL = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + + ; ThreatLevel High + Allow_osCauseDamage = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osCauseHealing = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetHealth = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetHealRate = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osForceAttachToAvatar = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osForceAttachToAvatarFromInventory = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osForceCreateLink = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osForceDropAttachment = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osForceDropAttachmentAt = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetLinkPrimitiveParams = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetPhysicsEngineType = true + Allow_osGetRegionMapTexture = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetScriptEngineName = true + Allow_osGetSimulatorVersion = true + Allow_osMakeNotecard = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osMatchString = true + Allow_osNpcCreate = ${OSSL|osslNPC} + Allow_osNpcGetPos = ${OSSL|osslNPC} + Allow_osNpcGetRot = ${OSSL|osslNPC} + Allow_osNpcLoadAppearance = ${OSSL|osslNPC} + Allow_osNpcMoveTo = ${OSSL|osslNPC} + Allow_osNpcMoveToTarget = ${OSSL|osslNPC} + Allow_osNpcPlayAnimation = ${OSSL|osslNPC} + Allow_osNpcRemove = ${OSSL|osslNPC} + Allow_osNpcSaveAppearance = ${OSSL|osslNPC} + Allow_osNpcSay = ${OSSL|osslNPC} + Allow_osNpcSayTo = ${OSSL|osslNPC} + Allow_osNpcSetRot = ${OSSL|osslNPC} + Allow_osNpcShout = ${OSSL|osslNPC} + Allow_osNpcSit = ${OSSL|osslNPC} + Allow_osNpcStand = ${OSSL|osslNPC} + Allow_osNpcStopAnimation = ${OSSL|osslNPC} + Allow_osNpcStopMoveToTarget = ${OSSL|osslNPC} + Allow_osNpcTouch = ${OSSL|osslNPC} + Allow_osNpcWhisper = ${OSSL|osslNPC} + Allow_osOwnerSaveAppearance = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osParcelJoin = ESTATE_MANAGER,ESTATE_OWNER + Allow_osParcelSubdivide = ESTATE_MANAGER,ESTATE_OWNER + Allow_osRegionRestart = ESTATE_MANAGER,ESTATE_OWNER + Allow_osRegionNotice = ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetProjectionParams = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetRegionWaterHeight = ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetTerrainHeight = ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetTerrainTexture = ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetTerrainTextureHeight = ESTATE_MANAGER,ESTATE_OWNER + + ; ThreatLevel VeryHigh + Allow_osAgentSaveAppearance = ESTATE_MANAGER,ESTATE_OWNER + ; Warning: The next function allows scripts to force animations on avatars without the user giving permission. + ; Enabling this can allow forced animations which can trigger traumatic episodes in vulnerable populations. + ; Similar things can be said for several of the 'force' functions. Enable with care and control. + ; Some of these were added as early functionality for NPCs. This has been replaced with the NPC functions. + Allow_osAvatarPlayAnimation = false + Allow_osAvatarStopAnimation = false + Allow_osForceAttachToOtherAvatarFromInventory = false + Allow_osForceDetachFromAvatar = false + Allow_osForceOtherSit = false + ; The notecard functions can cause a lot of load on the region if over used + Allow_osGetNotecard = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetNotecardLine = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osGetNumberOfNotecardLines = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetDynamicTextureURL = ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetDynamicTextureURLBlend = ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetDynamicTextureURLBlendFace = ESTATE_MANAGER,ESTATE_OWNER + Allow_osSetRot = false + Allow_osSetParcelDetails = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + + ; ThreatLevel Severe + Allow_osConsoleCommand = false + Allow_osKickAvatar = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osTeleportAgent = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + Allow_osTeleportObject = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER + + ; ThreatLevel Severe with additional internal restrictions + Allow_osGetAgentIP = true ; always restricted to Administrators (true or false to disable) + Allow_osSetContentType = false + + +; Always available +; see http://opensimulator.org/wiki/Category:OSSL_Functions + +;; do no remove this line +Include-osslEnable = "config-include/osslEnable.ini" \ No newline at end of file diff --git a/opensim-standalone/config/standalone/config-include/osslEnable.ini b/opensim-standalone/config/standalone/config-include/osslEnable.ini index f127b1f..af997aa 100644 --- a/opensim-standalone/config/standalone/config-include/osslEnable.ini +++ b/opensim-standalone/config/standalone/config-include/osslEnable.ini @@ -1,40 +1,44 @@ -; Enable OSSL functions. -; Including this file in a region's set of INI files, causes the OpenSimulator -; specific functions to be enabled. -; See http://opensimulator.org/wiki/OSSL for a description of OSSL functions and -; refer to http://opensimulator.org/wiki/OSSL_Implemented for a list of functions. - -; The below file lists all the functions and specifies who has permission to -; execute the function. Some of the functions are for maintainance or can be -; mis-used so the permission to execute a function can be limited. Ability to -; execute a function is based on the owner of the prim holding the script. +; local region changes for Enable OSSL functions. +; copy this file to osslEnable.ini, unless you already have one with local changes that are still valid for current opensim version. +; this file is included from osslDefaultEnable.ini file where defaults are defined, and allows to override them +; to not edit that file, copy the line you want to change to this file, then edit here +; see osslDefaultEnable.ini and +; http://opensimulator.org/wiki/Category:OSSL_Functions for a description of OSSL functions +; do not delete this line; [OSSL] - ; Allow the use of os* functions (some are dangerous) - AllowOSFunctions = true + ; Allow the use of os* functions (some are always available) + ;AllowOSFunctions = true ; Allow the user of mod* functions. This allows a script to pass messages ; to a region module via the modSendCommand() function and is used by some ; modules to extend the scripting language. - AllowMODFunctions = true + ;AllowMODFunctions = true ; Allow the use of LightShare functions. ; The setting enable_windlight = true must also be enabled in the [LightShare] section. - AllowLightShareFunctions = true + ;AllowLightShareFunctions = true - ; Threat level to allow. One of None, VeryLow, Low, Moderate, High, VeryHigh, Severe. + ; Send function permission error to owner if true, to all if false + ;PermissionErrorToOwner = false + + ; Function Threat level + ; Several functions have a predefined threat level, one of: None, VeryLow, Low, Moderate, High, VeryHigh, Severe. ; See http://opensimulator.org/wiki/Threat_level for more information on these levels. - ; This is the default level and can be overridden with the Allow_ specifications. ; Blanket enabling the ossl functions is dangerous and we do not recommend setting higher ; than 'Low' unless you have a high level of trust in all the users that can run scripts ; in your simulator. It is safer to explicitly allow certain types of user to run ; higher threat level OSSL functions, as detailed later on. + ; This setting defines the highest level allowed to execute OSFunctionThreatLevel = VeryLow - ; Some of the OSSL functions can be enabled or disabled individually. - ; To disable, set the value to 'false'. - ; To enable for everyone, set the value to 'true'. - ; To enable for individuals or groups, set it to a comma separated list. This checks + ; The threat level can be replaced by more detailed rules by lines of the form + ; Allow_FunctionName = parameters + ; To use the default threat level coment the respective line + ; parameters can be: + ; 'false' disables the function. + ; 'true' enables for everyone + ; or to enable for individuals or groups, set it to a comma separated list. This checks ; against the owner of the object containing the script. ; The comma separated entries in the list may be one of: ; "GRID_GOD" -- enable for users with UserLevel >= 200 @@ -63,229 +67,16 @@ ; NPC macros ; These can be mis-used so limit use to those you can trust. osslNPC = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - - ; The OSSL function name is prepended with "Allow_" and it checks against - ; the owners of the containing prim. There can also be entries beginning with - ; 'Creators_". The 'Creators_" parameters can only be a list of UUIDs and it is - ; checked against the creator of the script itself. + + ; example + ; Allow_osNpcCreate = ${OSSL|osslNPC} + + ; The threat level also can be replaced by lines of the form + ; Creators__FunctionName = comma separated list of UUIDs + ; this will enable the function for users that are the script creators and owners of the prim ; ************************************************* - - ; ThreatLevel None - Allow_osGetAgents = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetAvatarList = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetGender = true - Allow_osGetHealth = true - Allow_osGetHealRate = true - Allow_osGetNPCList = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetRezzingObject = true - Allow_osNpcGetOwner = ${OSSL|osslNPC} - Allow_osSetSunParam = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osTeleportOwner = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osWindActiveModelPluginName = true - - ; ThreatLevel Nuisance - Allow_osSetEstateSunSettings = ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetRegionSunSettings = ESTATE_MANAGER,ESTATE_OWNER - - ; ThreatLevel VeryLow - Allow_osEjectFromGroup = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osForceBreakAllLinks = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osForceBreakLink = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetWindParam = true - Allow_osInviteToGroup = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osReplaceString = true - Allow_osSetDynamicTextureData = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetDynamicTextureDataFace = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetDynamicTextureDataBlend = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetDynamicTextureDataBlendFace = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetDynamicTextureURL = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetDynamicTextureURLBlend = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetDynamicTextureURLBlendFace = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetParcelMediaURL = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetParcelSIPAddress = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetPrimFloatOnWater = true - Allow_osSetWindParam = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osTerrainFlush = ESTATE_MANAGER,ESTATE_OWNER - Allow_osUnixTimeToTimestamp = true - - ; ThreatLevel Low - Allow_osAvatarName2Key = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osFormatString = true - Allow_osKey2Name = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osListenRegex = true - Allow_osLoadedCreationDate = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osLoadedCreationID = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osLoadedCreationTime = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osMessageObject = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osRegexIsMatch = true - Allow_osGetAvatarHomeURI = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osNpcSetProfileAbout = ${OSSL|osslNPC} - Allow_osNpcSetProfileImage = ${OSSL|osslNPC} - Allow_osDie = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - - ; ThreatLevel Moderate - Allow_osDetectedCountry = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osDropAttachment = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osDropAttachmentAt = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetAgentCountry = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetGridCustom = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetGridGatekeeperURI = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetGridHomeURI = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetGridLoginURI = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetGridName = true - Allow_osGetGridNick = true - Allow_osGetNumberOfAttachments = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetRegionStats = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetSimulatorMemory = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetSimulatorMemoryKB = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osMessageAttachments = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetSpeed = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetOwnerSpeed = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - - ; ThreatLevel High - Allow_osCauseDamage = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osCauseHealing = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetHealth = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetHealRate = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osForceAttachToAvatar = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osForceAttachToAvatarFromInventory = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osForceCreateLink = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osForceDropAttachment = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osForceDropAttachmentAt = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetLinkPrimitiveParams = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetPhysicsEngineType = true - Allow_osGetRegionMapTexture = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetScriptEngineName = true - Allow_osGetSimulatorVersion = true - Allow_osMakeNotecard = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osMatchString = true - Allow_osNpcCreate = ${OSSL|osslNPC} - Allow_osNpcGetPos = ${OSSL|osslNPC} - Allow_osNpcGetRot = ${OSSL|osslNPC} - Allow_osNpcLoadAppearance = ${OSSL|osslNPC} - Allow_osNpcMoveTo = ${OSSL|osslNPC} - Allow_osNpcMoveToTarget = ${OSSL|osslNPC} - Allow_osNpcPlayAnimation = ${OSSL|osslNPC} - Allow_osNpcRemove = ${OSSL|osslNPC} - Allow_osNpcSaveAppearance = ${OSSL|osslNPC} - Allow_osNpcSay = ${OSSL|osslNPC} - Allow_osNpcSayTo = ${OSSL|osslNPC} - Allow_osNpcSetRot = ${OSSL|osslNPC} - Allow_osNpcShout = ${OSSL|osslNPC} - Allow_osNpcSit = ${OSSL|osslNPC} - Allow_osNpcStand = ${OSSL|osslNPC} - Allow_osNpcStopAnimation = ${OSSL|osslNPC} - Allow_osNpcStopMoveToTarget = ${OSSL|osslNPC} - Allow_osNpcTouch = ${OSSL|osslNPC} - Allow_osNpcWhisper = ${OSSL|osslNPC} - Allow_osOwnerSaveAppearance = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osParcelJoin = ESTATE_MANAGER,ESTATE_OWNER - Allow_osParcelSubdivide = ESTATE_MANAGER,ESTATE_OWNER - Allow_osRegionRestart = ESTATE_MANAGER,ESTATE_OWNER - Allow_osRegionNotice = ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetProjectionParams = ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetRegionWaterHeight = ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetStateEvents = false ; deprecated - Allow_osSetTerrainHeight = ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetTerrainTexture = ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetTerrainTextureHeight = ESTATE_MANAGER,ESTATE_OWNER - - ; ThreatLevel VeryHigh - Allow_osAgentSaveAppearance = ESTATE_MANAGER,ESTATE_OWNER - ; Warning: The next function allows scripts to force animations on avatars without the user giving permission. - ; Enabling this can allow forced animations which can trigger traumatic episodes in vulnerable populations. - ; Similar things can be said for several of the 'force' functions. Enable with care and control. - ; Some of these were added as early functionality for NPCs. This has been replaced with the NPC functions. - Allow_osAvatarPlayAnimation = false - Allow_osAvatarStopAnimation = false - Allow_osForceAttachToOtherAvatarFromInventory = false - Allow_osForceDetachFromAvatar = false - Allow_osForceOtherSit = false - ; The notecard functions can cause a lot of load on the region if over used - Allow_osGetNotecard = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetNotecardLine = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osGetNumberOfNotecardLines = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osSetRot = false - Allow_osSetParcelDetails = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - - ; ThreatLevel Severe - Allow_osConsoleCommand = false - Allow_osGrantScriptPermissions = false - Allow_osKickAvatar = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osRevokeScriptPermissions = false - Allow_osTeleportAgent = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - Allow_osTeleportObject = ${OSSL|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER - - ; ThreatLevel Severe with additional internal restrictions - Allow_osGetAgentIP = true ; always restricted to Administrators (true or false to disable) - Allow_osSetContentType = false +; add lines with our region local changes, below this to replace the default on osslDefaultEnable.ini or code. -; available functions out of Threat level control (for reference only) -; Allow_osAdjustSoundVolume = true -; Allow_osAngleBetween = true -; Allow_osApproxEquals = true -; Allow_osCheckODE = true -; Allow_osClearInertia = true -; Allow_osCollisionSound = true -; Allow_osDrawEllipse = true -; Allow_osDrawFilledEllipse = true -; Allow_osDrawFilledPolygon = true -; Allow_osDrawFilledRectangle = true -; Allow_osDrawImage = true -; Allow_osDrawLine = true -; Allow_osDrawPolygon = true -; Allow_osDrawRectangle = true -; Allow_osDrawResetTransform = true -; Allow_osDrawRotationTransform = true -; Allow_osDrawScaleTransform = true -; Allow_osDrawText = true -; Allow_osDrawTranslationTransform = true -; Allow_osGetCurrentSunHour = true -; Allow_osGetInertiaData = true -; Allow_osGetInventoryDesc = true -; Allow_osGetLinkNumber = true -; Allow_osGetMapTexture = true -; Allow_osGetPhysicsEngineName = true -; Allow_osGetPrimitiveParams = true -; Allow_osGetRegionSize = true -; Allow_osGetSunParam = true -; Allow_osGetTerrainHeight = true -; Allow_osGetDrawStringSize = true -; Allow_osIsNpc = true -; Allow_osIsUUID = true -; Allow_osLoopSound = true -; Allow_osLoopSoundMaster = true -; Allow_osLoopSoundSlave = true -; Allow_osMax = true -; Allow_osMin = true -; Allow_osMovePen = true -; Allow_osPlaySound = true -; Allow_osPlaySoundSlave = true -; Allow_osPreloadSound = true -; Allow_osRound = true -; Allow_osSetFontName = true -; Allow_osSetFontSize = true -; Allow_osSetInertia = true -; Allow_osSetInertiaAsBox = true -; Allow_osSetInertiaAsSphere = true -; Allow_osSetInertiaAsCylinder = true -; Allow_osSetPenCap = true -; Allow_osSetPenColor = true -; Allow_osSetPenSize = true -; Allow_osSetPrimitiveParams = true -; Allow_osSetSoundRadius = true -; Allow_osStopSound = true -; Allow_osStringSubString = true -; Allow_osStringStartsWith = true -; Allow_osStringEndsWith = true -; Allow_osStringIndexOf = true -; Allow_osStringLastIndexOf = true -; Allow_osStringRemove = true -; Allow_osStringReplace = true -; Allow_osTriggerSound = true -; Allow_osTriggerSoundLimited = true -; Allow_osVecDistSquare = true -; Allow_osVecMagSquare = true -; Allow_osVolumeDetect = true + diff --git a/opensim-standalone/config/standalone/misc.ini b/opensim-standalone/config/standalone/misc.ini index 6d53ea6..63888d0 100755 --- a/opensim-standalone/config/standalone/misc.ini +++ b/opensim-standalone/config/standalone/misc.ini @@ -3,7 +3,7 @@ [Startup] MaxPoolThreads = 45 PhysicalPrimMax = 256 - physics = BulletSim + ; physics = BulletSim ; physics = ubODE ; physics = OpenDynamicsEngine ; CombineContiguousRegions = true @@ -18,10 +18,12 @@ ; MySql ; Uncomment these lines if you want to use mysql storage ; Change the connection string to your db details + ; NOTE That password comes from environment variables set from os-secrets ; StorageProvider = "OpenSim.Data.MySQL.dll" ; ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=OPENSIM_DB_PASSWORD;Old Guids=true;" [Estates] + ; NOTE That names and passwords come from environment variables set from os-secrets DefaultEstateName = DEFAULT_ESTATE_NAME DefaultEstateOwnerName = DEFAULT_ESTATE_OWNER ; ** Standalone Estate Settings ** @@ -34,22 +36,9 @@ [Terrain] SendTerrainUpdatesByViewDistance = true -[BulletSim] - ; BulletEngine = BulletXNA - ; VehicleLoggingEnabled = True - ; VehicleDebuggingEnable = true - ; VehiclePhysicalLoggingEnabled = True - - ; UseSeparatePhysicsThread = true ; orig = false - - ; PhysicsLoggingEnabled = True - ; PhysicsLoggingDoFlush = True - ; PhysicsLoggingDir = "../logs" - ; PhysicsPhysicalDumpEnabled = True - ; PhysicsUnmanLoggingFrames = 100 - [ExtendedPhysics] Enabled = true [XEngine] + ; If one uses XEngine, use a larger thread stack ThreadStackSize = 500000 diff --git a/opensim-standalone/run-standalone.sh b/opensim-standalone/run-standalone.sh index 6d7b306..6b9af50 100755 --- a/opensim-standalone/run-standalone.sh +++ b/opensim-standalone/run-standalone.sh @@ -1,5 +1,5 @@ #! /bin/bash -# Run the standalone configuration. +# Run the default Docker image using the standalone configuration. # Since the initial run has to create and initialize the MYSQL database # the first time, this sets the passwords into the environment before