diff --git a/VERSION.txt b/VERSION.txt index c5106e6..7636e75 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -4.0.4 +4.0.5 diff --git a/image-opensim-herbal3d/Dockerfile-basil b/image-opensim-herbal3d/Dockerfile-basil deleted file mode 100644 index 54bbacd..0000000 --- a/image-opensim-herbal3d/Dockerfile-basil +++ /dev/null @@ -1,42 +0,0 @@ -# Docker container with nginx server service up a Javascript Basil viewer - -FROM node:latest as built - -ENV DIR=/tmp/app - -ARG BASIL_BRANCH=master - -RUN apt-get update - -RUN mkdir -p "$DIR" - -ADD https://api.github.com/repos/herbal3d/basil/git/refs/heads/$BASIL_BRANCH basil-git-version.json -RUN cd "$DIR" \ - && git clone --depth 1 -b master --single-branch https://github.com/Herbal3d/basil.git - -RUN cd "$DIR" \ - && cd basil/Basilts \ - && npm install \ - && npm run build - -# ============================================================================ -FROM nginx:latest - -ENV DIR=/tmp/app - -LABEL Description="Docker container for serving Basilts" - -# These are not used except for debugging -# RUN apt-get update \ -# && apt-get install -y \ -# coreutils \ -# procps \ -# vim \ -# && rm -rf /var/lib/apt/lists/* - -COPY --from=built $DIR/basil/Basilts/dist/ /usr/share/nginx/html -RUN cd /usr/share/nginx/html \ - && cp Entry.html index.html - -EXPOSE 80/tcp - diff --git a/image-opensim-herbal3d/Dockerfile-herbal3d b/image-opensim-herbal3d/Dockerfile-herbal3d index 89e2983..6fb8f0b 100644 --- a/image-opensim-herbal3d/Dockerfile-herbal3d +++ b/image-opensim-herbal3d/Dockerfile-herbal3d @@ -1,25 +1,32 @@ # OpenSim with Herbal3d region modules # docker build -t opensim-herbal3d . -FROM mcr.microsoft.com/dotnet/sdk:6.0-focal +# Built with dotnet8 +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build LABEL Description="Docker container running OpenSimulator with Herbal3d extensions" -ENV BASEDIR=/home/opensim -ENV OPENSIMDIR=/home/opensim/opensim -ENV VERSIONDIR=/home/opensim/VERSION +# In the target image, these are directories built and used +# While parameters, these usually don't change +ARG OPENSIMHOME=/home/opensim +ARG OPENSIMDIR=/home/opensim/opensim +ARG OPENSIMCONFIG=/home/opensim/opensim/bin/config +ARG VERSIONDIR=/home/opensim/VERSION +ARG OS_ACCOUNT=opensim -# This builder information passed in so they can be embedded in the built image -ARG BUILD_DATE -ARG BUILD_DAY -ARG OS_DOCKER_VERSION -ARG OS_DOCKER_GIT_BRANCH -ARG OS_DOCKER_GIT_COMMIT -ARG OS_DOCKER_GIT_COMMIT_SHORT - -# Arguments for fetching OpenSimulator +# Arguments for fetching the proper version of OpenSimulator ARG OS_GIT_REPO=git://opensimulator.org/git/opensim -ARG OS_GIT_BRANCH=dotnet6 +ARG OS_GIT_BRANCH=master +ARG OS_BUILDTARGET=Release +ARG OS_SLN=OpenSim.sln + +# Arguments about the build environment passed in so they can be embedded in the container +ARG BUILD_DATE=20240101.0000 +ARG BUILD_DAY=20240101 +ARG OS_DOCKER_VERSION=1.0.0 +ARG OS_DOCKER_GIT_BRANCH=main +ARG OS_DOCKER_GIT_COMMIT=62fda19d0038a274bf3fd922b023b149b3a40a90 +ARG OS_DOCKER_GIT_COMMIT_SHORT=62fda19d # Each of the different packages can have their branch over-ridden with a --build-arg ARG COMMON_ENTITIES_BRANCH=dotnet6 @@ -30,28 +37,20 @@ ARG OSAUTH_BRANCH=dotnet6 ARG RAGU_BRANCH=dotnet6 # Include required packages ('coreutils git vim' included for debugging) -# (20220127 using MariaDB as Mono image built on Debian 10) RUN apt-get update \ && apt-get upgrade -y \ && apt-get install -y \ coreutils procps git vim \ screen \ ccrypt \ - cron \ - mariadb-client \ - sqlite \ libgdiplus \ - && rm -rf /var/lib/{apt,dpkg,cache,log}/ + libc6-dev \ + mariadb-client # The simulator is run under the user name 'opensim' -RUN adduser --disabled-password --gecos 'OpenSimulator user' opensim +RUN adduser --disabled-password --gecos 'OpenSimulator user' $OS_ACCOUNT -USER opensim:opensim - -# Scripts that keep OpenSimulator running, make crash reports, clean up log files, etc -COPY --chown=opensim:opensim temp-run-scripts/*.sh /home/opensim/ -COPY --chown=opensim:opensim temp-run-scripts/crontab /home/opensim/ -COPY --chown=opensim:opensim temp-run-scripts/.vimrc /home/opensim/ +USER $OS_ACCOUNT:$OS_ACCOUNT # Version information that goes in the image RUN mkdir -p $VERSIONDIR \ @@ -65,7 +64,7 @@ RUN mkdir -p $VERSIONDIR \ && echo ${OS_DOCKER_VERSION}-${BUILD_DAY}-${OS_DOCKER_GIT_COMMIT_SHORT} > "OS_DOCKER_IMAGE_VERSION" # Fetch the latest version of the OpenSimulator sources. -RUN cd /home/opensim \ +RUN cd $OPENSIMHOME \ && git clone --depth=1 -b $OS_GIT_BRANCH --single-branch $OS_GIT_REPO opensim RUN cd $OPENSIMDIR/addon-modules/ \ @@ -110,10 +109,14 @@ RUN cd $OPENSIMDIR/addon-modules/RaguOS \ # Extract version information from the fetched sources RUN cd $OPENSIMDIR \ - && git rev-parse HEAD > $VERSIONDIR/OS_GIT_COMMIT \ - && git rev-parse --short HEAD > $VERSIONDIR/OS_GIT_COMMIT_SHORT \ + && echo $OS_GIT_REPO > "$VERSIONDIR/OS_GIT_REPO" \ + && echo $OS_GIT_BRANCH > "$VERSIONDIR/OS_GIT_BRANCH" \ + && echo $OS_BUILDTARGET > "$VERSIONDIR/OS_BUILD_TARGET" \ + && git describe --tags --long --always > "$VERSIONDIR/OS_GIT_DESCRIBE" \ + && git rev-parse HEAD > "$VERSIONDIR/OS_GIT_COMMIT" \ + && git rev-parse --short HEAD > "$VERSIONDIR/OS_GIT_COMMIT_SHORT" \ && grep "const string VersionNumber" ./OpenSim/Framework/VersionInfo.cs | \ - sed -e "s/^.*VersionNumber = \"\(.*\)\".*$/\1/" > $VERSIONDIR/OS_VERSION + sed -e "s/^.*VersionNumber = \"\(.*\)\".*$/\1/" > "$VERSIONDIR/OS_VERSION" # Use the proper drawing library RUN cp $OPENSIMDIR/bin/System.Drawing.Common.dll.linux $OPENSIMDIR/bin/System.Drawing.Common.dll @@ -122,27 +125,59 @@ RUN cp $OPENSIMDIR/bin/System.Drawing.Common.dll.linux $OPENSIMDIR/bin/System.Dr RUN cd $OPENSIMDIR \ && chmod +x runprebuild.sh \ && ./runprebuild.sh \ - && dotnet restore OpenSim.sln \ - && dotnet build --configuration Release OpenSim.sln + && dotnet build --configuration $OS_BUILDTARGET $OS_SLN + +# None of the configuration files in the built image are used +# Configuration files are all specified by invocation parameter. + +# ======================================================================= +# Create the binary only container with the dotnet8 runtime +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS release + +# In the target image, these are directories built and used +ARG OPENSIMHOME=/home/opensim +ARG OPENSIMDIR=/home/opensim/opensim +ARG VERSIONDIR=/home/opensim/VERSION +ARG OS_BUILDTARGET=Release +ARG OS_ACCOUNT=opensim + +# Include required packages ('coreutils,git,vim' included for debugging) +RUN apt-get update \ + && apt-get install -y \ + coreutils procps git vim \ + screen \ + ccrypt \ + cron \ + libgdiplus \ + libc6-dev \ + mariadb-client \ + && rm -rf /var/lib/{apt,dpkg,cache,log}/ + +# The simulator is run under the user name 'opensim' +RUN adduser --disabled-password --gecos 'OpenSimulator user' $OS_ACCOUNT + +USER $OS_ACCOUNT:$OS_ACCOUNT + +# Scripts that keep OpenSimulator running, make crash reports, clean up log files, etc +COPY --chown=opensim:opensim temp-run-scripts/*.sh $OPENSIMHOME +COPY --chown=opensim:opensim temp-run-scripts/crontab $OPENSIMHOME +COPY --chown=opensim:opensim temp-run-scripts/vimrc $OPENSIMHOME/.vimrc + +# Copy the binary files +COPY --from=build --chown=opensim:opensim $OPENSIMDIR/bin $OPENSIMDIR/bin +COPY --from=build --chown=opensim:opensim $VERSIONDIR $VERSIONDIR # The NuGet DLLs are not copied into the bin directory. # TODO: Figure out why NuGet packages are not copied. -RUN cp $BASEDIR/.nuget/packages/fleck/1.2.0/lib/netstandard2.0/Fleck.dll $OPENSIMDIR/bin -RUN cp $BASEDIR/.nuget/packages/nlog/4.7.15/lib/netstandard2.0/NLog.dll $OPENSIMDIR/bin +COPY --from=build --chown=opensim:opensim $OPENSIMDIR/.nuget/packages/fleck/1.2.0/lib/netstandard2.0/Fleck.dll $OPENSIMDIR/bin +COPY --from=build --chown=opensim:opensim $OPENSIMDIR/.nuget/packages/nlog/4.7.15/lib/netstandard2.0/NLog.dll $OPENSIMDIR/bin -# OpenSim.ini and other INI files include from "config-include/*" -# so copy an empty versions to nullfy the default configuration. -RUN cd $OPENSIMDIR/bin \ - && /home/opensim/nullOutConfigInclude.sh +# The .ini files in config-include in the image are not used and are emptied here to eliminate any confusion +RUN cd $OPENSIMDIR/bin/config-include \ + && $OPENSIMHOME/nullOutConfigInclude.sh -# Copy the configuration file sets for this image +# Create the directory that is mounted that includes all the configuration RUN mkdir -p $OPENSIMDIR/bin/config -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" ] @@ -161,3 +196,4 @@ ENTRYPOINT [ "/home/opensim/bootOpenSim.sh" ] # the necessary other INI files). VOLUME $OPENSIMDIR/bin/config + diff --git a/image-opensim-herbal3d/Dockerfile-opensim b/image-opensim-herbal3d/Dockerfile-opensim new file mode 100644 index 0000000..7881f28 --- /dev/null +++ b/image-opensim-herbal3d/Dockerfile-opensim @@ -0,0 +1,143 @@ +# syntax=docker/dockerfile:1 +# OpenSim for a container +# docker build -t opensim . + +# Built with dotnet8 +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build + +LABEL Description="Docker container running OpenSim" + +# In the target image, these are directories built and used +# While parameters, these usually don't change +ARG OPENSIMHOME=/home/opensim +ARG OPENSIMDIR=/home/opensim/opensim +ARG OPENSIMCONFIG=/home/opensim/opensim/bin/config +ARG VERSIONDIR=/home/opensim/VERSION +ARG OS_ACCOUNT=opensim + +# Arguments for fetching the proper version of OpenSimulator +ARG OS_GIT_REPO=git://opensimulator.org/git/opensim +ARG OS_GIT_BRANCH=master +ARG OS_BUILDTARGET=Release +ARG OS_SLN=OpenSim.sln + +# Arguments about the build environment passed in so they can be embedded in the container +ARG BUILD_DATE=20240101.0000 +ARG BUILD_DAY=20240101 +ARG OS_DOCKER_VERSION=1.0.0 +ARG OS_DOCKER_GIT_BRANCH=main +ARG OS_DOCKER_GIT_COMMIT=62fda19d0038a274bf3fd922b023b149b3a40a90 +ARG OS_DOCKER_GIT_COMMIT_SHORT=62fda19d + +# Include required packages ('coreutils git vim' included for debugging) +RUN apt-get update \ + && apt-get install -y \ + coreutils procps git vim \ + screen \ + ccrypt \ + libgdiplus \ + libc6-dev \ + mariadb-client + +# The simulator is run under the user name 'opensim' +RUN adduser --disabled-password --gecos 'OpenSimulator user' $OS_ACCOUNT + +USER $OS_ACCOUNT:$OS_ACCOUNT + +# Version information that goes in the image +RUN mkdir -p $VERSIONDIR \ + && cd $VERSIONDIR \ + && echo $BUILD_DATE > "BUILD_DATE" \ + && echo $BUILD_DAY > "BUILD_DAY" \ + && echo $OS_DOCKER_VERSION > "OS_DOCKER_VERSION" \ + && echo $OS_DOCKER_GIT_BRANCH > "OS_DOCKER_GIT_BRANCH" \ + && echo $OS_DOCKER_GIT_COMMIT > "OS_DOCKER_GIT_COMMIT" \ + && echo $OS_DOCKER_GIT_COMMIT_SHORT > "OS_DOCKER_GIT_COMMIT_SHORT" \ + && echo ${OS_DOCKER_VERSION}-${BUILD_DAY}-${OS_DOCKER_GIT_COMMIT_SHORT} > "OS_DOCKER_IMAGE_VERSION" + +# Fetch the latest version of the OpenSimulator sources. +RUN cd $OPENSIMHOME \ + && git clone --depth=1 -b $OS_GIT_BRANCH --single-branch $OS_GIT_REPO opensim + +# Extract version information from the fetched sources +RUN cd $OPENSIMDIR \ + && echo $OS_GIT_REPO > "$VERSIONDIR/OS_GIT_REPO" \ + && echo $OS_GIT_BRANCH > "$VERSIONDIR/OS_GIT_BRANCH" \ + && echo $OS_BUILDTARGET > "$VERSIONDIR/OS_BUILD_TARGET" \ + && git describe --tags --long --always > "$VERSIONDIR/OS_GIT_DESCRIBE" \ + && git rev-parse HEAD > "$VERSIONDIR/OS_GIT_COMMIT" \ + && git rev-parse --short HEAD > "$VERSIONDIR/OS_GIT_COMMIT_SHORT" \ + && grep "const string VersionNumber" ./OpenSim/Framework/VersionInfo.cs | \ + sed -e "s/^.*VersionNumber = \"\(.*\)\".*$/\1/" > "$VERSIONDIR/OS_VERSION" + + +# Build OpenSimulator +RUN cd $OPENSIMDIR \ + && chmod +x runprebuild.sh \ + && ./runprebuild.sh \ + && dotnet build --configuration $OS_BUILDTARGET $OS_SLN + +# None of the configuration files in the built image are used +# Configuration files are all specified by invocation parameter. + +# ======================================================================= +# Create the binary only container with the dotnet8 runtime +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS release + +# In the target image, these are directories built and used +ARG OPENSIMHOME=/home/opensim +ARG OPENSIMDIR=/home/opensim/opensim +ARG VERSIONDIR=/home/opensim/VERSION +ARG OS_BUILDTARGET=Release +ARG OS_ACCOUNT=opensim + +# Include required packages ('coreutils,git,vim' included for debugging) +RUN apt-get update \ + && apt-get install -y \ + coreutils procps git vim \ + screen \ + ccrypt \ + cron \ + libgdiplus \ + libc6-dev \ + mariadb-client \ + && rm -rf /var/lib/{apt,dpkg,cache,log}/ + +# The simulator is run under the user name 'opensim' +RUN adduser --disabled-password --gecos 'OpenSimulator user' $OS_ACCOUNT + +USER $OS_ACCOUNT:$OS_ACCOUNT + +# Scripts that keep OpenSimulator running, make crash reports, clean up log files, etc +COPY --chown=opensim:opensim temp-run-scripts/*.sh $OPENSIMHOME +COPY --chown=opensim:opensim temp-run-scripts/crontab $OPENSIMHOME +COPY --chown=opensim:opensim temp-run-scripts/vimrc $OPENSIMHOME/.vimrc + +# Copy the binary files +COPY --from=build --chown=opensim:opensim $OPENSIMDIR/bin $OPENSIMDIR/bin +COPY --from=build --chown=opensim:opensim $VERSIONDIR $VERSIONDIR + +# The .ini files in config-include in the image are not used and are emptied here to eliminate any confusion +RUN cd $OPENSIMDIR/bin/config-include \ + && $OPENSIMHOME/nullOutConfigInclude.sh + +# Create the directory that is mounted that includes all the configuration +RUN mkdir -p $OPENSIMDIR/bin/config + +WORKDIR $OPENSIMDIR/bin +ENTRYPOINT [ "/home/opensim/bootOpenSim.sh" ] + +# No ports are exposed by default since the simulator and regions can be anywhere. +# The simulator defaults to port 9000. +# EXPOSE 9000/tcp +# EXPOSE 9000/udp + +# Directories that can be overridden with a mounted volume for configuration. +# The default configuration is for a simple standalone region. +# All the normal configuration has been nulled out (OpenSim.ini is the default +# and all the included files in bin/config-include are empty). +# A non-standalone configuration replaces bin/config with files that do +# the configuration of the whole system (include 'architecture' ini file and +# the necessary other INI files). +VOLUME $OPENSIMDIR/bin/config + diff --git a/image-opensim-herbal3d/README.md b/image-opensim-herbal3d/README.md deleted file mode 100644 index 0300e87..0000000 --- a/image-opensim-herbal3d/README.md +++ /dev/null @@ -1,115 +0,0 @@ -*NOTE* as of Feb 2022, this image isn't working. Updates coming. - -This builds various configurations of [OpenSimulator] modified with the -[Herbal3d] region modules and running in [Docker] containers. -The `docker-compose` setup runs three containers: - -- [OpenSimulator] image containing the [Herbal3d] modules, -- [MariaDB] image for the simulator database, -- [nginx] server serving the [BasilJS] web pages for viewing/testing [Herbal3d] - -## OpenSimulator Image - -This builds the latest 'master' version of [OpenSimulator] along with all the Herbal3D -addon-modules into a Docker container. The resulting Docker image has scripts -to run, log, and keep running the [OpenSimulator] instance. The image starts at -`/usr/opensim/bootOpenSim.sh` which checks for initial setup conditions and -then runs `/usr/opensim/run.opensim.sh` which starts [OpenSimulator] using `screen`. - -## OpenSimulator Configuration - -The [OpenSimulator] setup has a specialized configuration setup. This configuration -setup has: - -- the default OpenSimDefault.ini and OpenSim.ini in place -- all of the usual config-include files nulled out (empty) -- a 'bin/config/os-config' file that defines the environment variable 'CONFIG_NAME' -- the default 'CONFIG_NAME' of 'standalone' -- a set of scripts in 'bin/config' that initialized and configure - -`/usr/opensim/bootOpenSim.sh` calls `/usr/opensim/opensim/bin/config/setup.sh` to -configure this particular [OpenSimulator] instance. `setup.sh` is called everytime -the Docker image is started. `setup.sh` uses `os-config` to define the environment -variable `CONFIG_NAME` and then uses the information in the same named sub-directory -to setup the configuration files for [OpenSimulator]. - -`bin/config/$CONFIG_NAME/Includes.ini` is copied into `bin/config`. This will be read -by [OpenSimulator] on startup and replaces all of the usual configuration includes. -There will usually be a `bin/config/$CONFIG_NAME/config-includes` that models the -usual [OpenSimulator] configuration directory. - -This configuration design means that the complete [OpenSimulator] setup and -runtime configuration can be replaced by replacing the directory -`/usr/opensim/opensim/bin/config`. This allows mounting a configuration directory -for the Docker container to completely replace the setup and configuration. - -Note that there are secrets needed to configure and run [OpenSimulator]. -These are stored in a 'ccrypt' encrypted file. Read the comments in -'/usr/opensim/opensim/bin/config/os-secrets' for how to encrypt secrets. -The container is initially run with the 'CONFIGKEY' environment variable -which is the key for decrypting the secrets file. - -## Building and Running - -This is organized so there can be several different configurations -of [OpenSimulator] and [Herbal3d] in this source tree. -The configuration to use is selected by setting the `CONFIG_NAME` -environment variable. - -Initially, there are two configuratios: - -- standalone: a simple run of OpenSimulator image in a single docker container -- three: this creates a three docker container set that includes: - * OpenSimulator simulator with the Herbal3d addon-modules; - * an nginx web server serving BasilJS; and - * a MariaDB server used by the OpenSimulator regions - -These configurations include all the setup and configuration for the -OpenSimulator instance such as region names and locations. -To create a new configuration, copy the `three` file tree into -a new directory, edit that new set of configuration files, and -do the build and run with your new directory name as `CONFIG_NAME`. - -The steps to build and run the containers: - -```bash -# Get these configuration files -cd -git clone https://github.com/Herbal3d/opensim-docker.git -cd opensim-docker/opensim-herbal3d - -export CONFIG_NAME=three - -# Create secrets -cd config/$CONFIG_NAME -cp ../os-secrets tmpfile -# Edit 'tmpfile' with secrets (MYSQL root password, etc) -ccrypt -e -K secretPassword < tmpfile > os-secrets.crypt -rm tmpfile - -# Do any additional OpenSimulator configuration -# Edit 'config/$CONFIG_NAME/Regions/Regions.ini for region location -# Edit 'config/$CONFIG_NAME/misc.ini for other settings -# Edit 'config'$CONFIG_NAME/config-include/*.ini for grid connections - -# Build OpenSimulator/Herbal3d image -cd -cd opensim-docker/opensim-herbal3d -./build-herbal3d.sh - -# Build BasilJS image -cd -cd opensim-docker/opensim-herbal3d -./build-basiljs.sh - -# Run the composed container set -CONFIG_NAME=three CONFIGKEY=secretPassword EXTERNAL_HOSTNAME=whateverTheHostnameIs ./run-herbal3d.sh - -``` - -[OpenSimulator]: https://opensimulator.org -[Docker]: https://www.docker.com -[Herbal3d]: https://www.herbal3d.org -[BasilJS]: https://github.com/Herbal3d/basil -[nginx]: https://www.nginx.com/ - diff --git a/image-opensim-herbal3d/build-basil.sh b/image-opensim-herbal3d/build-basil.sh deleted file mode 100755 index 7fa71c9..0000000 --- a/image-opensim-herbal3d/build-basil.sh +++ /dev/null @@ -1,8 +0,0 @@ -#! /bin/bash -# Build docker image for sourcing Basilts - -docker build \ - --pull \ - -t basil-herbal3d \ - -f Dockerfile-basil \ - . diff --git a/image-opensim-herbal3d/build-herbal3d.sh b/image-opensim-herbal3d/build-herbal3d.sh index ce84872..dcb9679 100755 --- a/image-opensim-herbal3d/build-herbal3d.sh +++ b/image-opensim-herbal3d/build-herbal3d.sh @@ -1,30 +1,37 @@ #! /bin/bash -# Build docker images for running a Herbal3d version of OpenSimulator +# Build docker images for running a standalone version of OpenSimulator BUILD_DATE=$(date "+%Y%m%d.%H%M") BUILD_DAY=$(date "+%Y%m%d") +# version infomation about opensim-docker OS_DOCKER_VERSION=$(cat ../VERSION.txt) -GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD) -GIT_COMMIT=$(git rev-parse HEAD) -GIT_COMMIT_SHORT=$(git rev-parse --short HEAD) +OS_DOCKER_GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD) +OS_DOCKER_GIT_COMMIT=$(git rev-parse HEAD) +OS_DOCKER_GIT_COMMIT_SHORT=$(git rev-parse --short HEAD) + +# Set up the environment with all the environment build parameters +source ./env # Copy the run-scripts into the local directory here since the Docker build # only knowns the context of this directory rm -rf temp-run-scripts cp -r ../run-scripts temp-run-scripts -# Note that the '--no-cache' can be added force refetching of the OpenSimulator git sources -# --no-cache -# As of 20220320, the Prebuild needed for Herbal3d is in a branch (setting of OS_GIT_BRANCH) +# Build the image docker build \ + --pull \ --build-arg BUILD_DATE=$BUILD_DATE \ --build-arg BUILD_DAY=$BUILD_DAY \ --build-arg OS_DOCKER_VERSION=$OS_DOCKER_VERSION \ - --build-arg OS_DOCKER_GIT_BRANCH=$GIT_BRANCH \ - --build-arg OS_DOCKER_GIT_COMMIT=$GIT_COMMIT \ - --build-arg OS_DOCKER_GIT_COMMIT_SHORT=$GIT_COMMIT_SHORT \ - -t opensim-herbal3d \ - -f Dockerfile-herbal3d \ + --build-arg OS_DOCKER_GIT_BRANCH=$OS_DOCKER_GIT_BRANCH \ + --build-arg OS_DOCKER_GIT_COMMIT=$OS_DOCKER_GIT_COMMIT \ + --build-arg OS_DOCKER_GIT_COMMIT_SHORT=$OS_DOCKER_GIT_COMMIT_SHORT \ + --build-arg OS_GIT_REPO=$OS_GIT_REPO \ + --build-arg OS_GIT_BRANCH=$OS_GIT_BRANCH \ + --build-arg OS_BUILDTARGET=$OS_BUILDTARGET \ + --build-arg OS_SLN=$OS_SLN \ + -t "$IMAGE_NAME" \ + -f Dockerfile-opensim \ . # Remove the temporarily copied run-scripts to reduce any confusion diff --git a/image-opensim-herbal3d/config-osgrid/Includes.ini b/image-opensim-herbal3d/config-osgrid/Includes.ini new file mode 100755 index 0000000..0c95299 --- /dev/null +++ b/image-opensim-herbal3d/config-osgrid/Includes.ini @@ -0,0 +1,90 @@ +; This file is the first configuration file read. +; A normal configuration reads OpenSimDefaults.ini and then +; OpenSim.ini but, in this configuration setup, OpenSimDefaults.ini +; is read from the image, OpenSim.ini does not exist, and then +; this Includes.ini is read to setup global variables and then +; include the files that are in the $OPENSIMCONFIGDIR/config-include +; directory. +; Most of the included files are stock from the sources. The final "misc.ini" +; overlays values and should include the per-simulator instance changes. + +; The order of include files is important as new values overlay the previous values. + +; Note that all the .ini files in the regular bin/config-include have +; been null'ed out (they exist but do nothing). This is because +; the OpenSim sources often presume the config directory is "./". + + +; Values from the environment. Environment set from "os-secrets" so +; values are not set here. These entries just bring in the environment values. +; The values specified here are not used. +; Reference with "${Environment|Name}" +[Environment] + MYSQL_DB_HOST=dbservice + MYSQL_DB_DB=opensim + MYSQL_DB_USER=opensim + MYSQL_DB_USER_PW=NoOneKnowsIt + + DEFAULT_ESTATE_NAME=MyEstate + DEFAULT_ESTATE_OWNER=Fred Flintstone + DEFAULT_ESTATE_OWNER_UUID=ff5ec374-8028-43cb-ae58-8d38d70729e5 + DEFAULT_ESTATE_OWNER_PW=SomeSecret + +; Copy of the [Const] section in OpenSim.ini.example since it is used in +; some of the stock include files +[Const] + ; this section defines constants for grid services + ; to simplify other configuration files default settings + + ;# {BaseHostname} {} {BaseHostname} {"example.com" "127.0.0.1"} "127.0.0.1" + BaseHostname = "127.0.0.1" + + ;# {BaseURL} {} {BaseURL} {"http://${Const|BaseHostname}} "http://${Const|BaseHostname}" + BaseURL = http://${Const|BaseHostname} + + ; If you run a grid, several services should not be availble to world, access to them should be blocked on firewall + ; PrivatePort should closed at the firewall. + + ;# {PublicPort} {} {PublicPort} {8002 9000} "9000" + ; in case of a standalone this needs to match the parameter http_listener_port in section [Network] below + ; in that case the default is 9000 + PublicPort = "9000" + ; for a region on a grid, the grid services public port should be used, normal default is 8002 + ;PublicPort = "8002" + + ; you can also have them on a diferent url / IP + ;# {PrivURL} {} {PrivURL} {"http://${Const|BaseURL}} "${Const|BaseURL}" + PrivURL = ${Const|BaseURL} + + ;grid default private port 8003, not used in standalone + ;# {PrivatePort} {} {PrivatePort} {8003} "8003" + ; port to access private grid services. + ; grids that run all their regions should deny access to this port + ; from outside their networks, using firewalls + PrivatePort = "8003" + +[Startup] + ; Region definitions are in this directory (rather than 'bin/Regions') + ; Reads all .ini files in this directory + region_info_source = "filesystem" + regionload_regionsdir = "/home/opensim/opensim/bin/config/Regions" + ; Region specification from URL. + ; Expects XML (see http://opensimulator.org/wiki/Configuring_Regions) + ;region_info_source = "web" + ;regionload_webserver_url = "http://myoracle.example.com/Region?name=thisRegion" + +[Architecture] + Include-osslDefaultEnable = "/home/opensim/opensim/bin/config/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 = "/home/opensim/opensim/bin/config/config-include/osslEnable.ini" + + Include-Architecture = "/home/opensim/opensim/bin/config/config-include/GridHypergrid.ini" + ; 'Standalone.ini' is usually a copy of the default 'GridHypergrid.ini.example' which + ; would include the now empty 'bin/config-include/StandaloneCommon.ini'. + ; The next line includes the 'StandaloneCommon.ini' from this configuration. + Include-Common = "/home/opensim/opensim/bin/config/config-include/GridCommon.ini" + Include-Flotsam = "/home/opensim/opensim/bin/config/config-include/FlotsamCache.ini" + ; Last include so it overlays anything before. + ; Database is setup in this INI file as it has passwords, etc. + Include-MiscConfig = "/home/opensim/opensim/bin/config/config-include/Final.ini" diff --git a/image-opensim-herbal3d/config/README b/image-opensim-herbal3d/config-osgrid/README similarity index 100% rename from image-opensim-herbal3d/config/README rename to image-opensim-herbal3d/config-osgrid/README diff --git a/image-opensim-herbal3d/config-osgrid/Regions/.keep b/image-opensim-herbal3d/config-osgrid/Regions/.keep new file mode 100644 index 0000000..e69de29 diff --git a/image-opensim-herbal3d/config-osgrid/Regions/Regions.ini b/image-opensim-herbal3d/config-osgrid/Regions/Regions.ini new file mode 100644 index 0000000..cbcc63c --- /dev/null +++ b/image-opensim-herbal3d/config-osgrid/Regions/Regions.ini @@ -0,0 +1,105 @@ +; * This is an example region config file. +; * +; * If OpenSimulator is started up without any regions, it will ask you configuration questions to generate a Regions.ini file for you. +; * So there is no need to change this file directly, it is only for reference. +; * However, if you prefer you can also copy this file to Regions.ini and appropriately change the parameters below. +; * Only files ending with .ini and .xml in this directly will be loaded by OpenSimulator. +; * +; * You can multiple regions into one file or make one file per region +; * The section name is the region name +; * + +[Default Region] + +; * +; * You MUST change this! It will NOT be done for you! +; * + +RegionUUID = 2f75645d-acfd-4296-9cc5-8b1f0537fdaf + +Location = 1000,1000 +InternalAddress = 0.0.0.0 +InternalPort = 9000 +AllowAlternatePorts = False +ExternalHostName = SYSTEMIP + +;; Estate ID or Name to connect region to, leave blank for console prompt, remember estate id can not be less than 100 +;; this value is only used when creating a region and after that will be ignored. 0 Will use the next auto id provided by the database +;TargetEstate = 0 + +; * +; * Variable-sized regions allows the creation of large, borderless spaces. +; * The default is 256 meters. For larger spaces, set these to multiples of 256. +; * For the time being, X and Y need to be the same. +; * +; SizeX = 512 +; SizeY = 512 + +; * Default region landing point used when no teleport coords are specified +; DefaultLanding = <128,128,30> + +; * +; * Prim data +; * This allows limiting the sizes of prims and the region prim count +; * + +; NonPhysicalPrimMax = 256 +; PhysicalPrimMax = 64 +; ClampPrimSize = False +; MaxPrims = 15000 +; MaxAgents = 100 + +; * Max prims per user (per parcel). +; * Negative values will disable the check. +; MaxPrimsPerUser = -1 + +; * +; * Multi-Tenancy. Only set if needed +; * + +; ScopeID = "00000000-0000-0000-0000-000000000000" + +; * +; * Product name (used in search from viewer 1.23 +; * + +; RegionType = "Mainland" + +; * Region Specific Static Maptiles: +; * Important: To use any kind of texture *assets* as a static maptile, the following +; * things must be set in the [Map] section of OpenSim.ini : +; * +; * MapImageModule = "MapImageModule" +; * GenerateMaptiles = false +; * +; * Now, there is a setting in [Map] in OpenSim.ini called +; * +; * MaptileStaticUUID = 00000000-0000-0000-0000-000000000000 +; * +; * where, given the criteria above, lets you specify the UUID of a texture asset to use +; * as a maptile *Simulator Wide*. Here, you can override that on a per region basis for +; * Simulators that run multiple regions: + +; MaptileStaticUUID = 00000000-0000-0000-0000-000000000000 + + +; * Region Specific Static Maptiles from file: +; * It is also possible to create maptiles using external image files of the right size +; * and supported formats (bmp,png,jpg in RGB 24bpp format) +; * +; * Important: To use any kind of texture *files* as a static maptile, the following +; * things must be set in the [Map] section of OpenSim.ini : +; * +; * MapImageModule = "MapImageModule" +; * GenerateMaptiles = true +; * +; * The image must be the same size in pixels as the region or varregion is in meters. +; * i.e. 256x256 pixels for single region of 256x256m, or 1280x1280 pixels for a varregion +; * of size 1280x1280m. The image can be loaded from anywhere by setting the path +; * ie: MaptileStaticFile = "maptiles/SomeFile.png" +; * +; * If this setting is used, then the base map is generated from this file instead of being +; * built using MapImageModule's terrain and prim renderer. Parcel 'for sale' overlays are +; * still drawn on top of the static map by the World Map module. + +; MaptileStaticFile = "SomeFile.png" diff --git a/image-opensim-herbal3d/config-osgrid/Regions/Regions.ini.example b/image-opensim-herbal3d/config-osgrid/Regions/Regions.ini.example new file mode 100644 index 0000000..3f47cca --- /dev/null +++ b/image-opensim-herbal3d/config-osgrid/Regions/Regions.ini.example @@ -0,0 +1,105 @@ +; * This is an example region config file. +; * +; * If OpenSimulator is started up without any regions, it will ask you configuration questions to generate a Regions.ini file for you. +; * So there is no need to change this file directly, it is only for reference. +; * However, if you prefer you can also copy this file to Regions.ini and appropriately change the parameters below. +; * Only files ending with .ini and .xml in this directly will be loaded by OpenSimulator. +; * +; * You can multiple regions into one file or make one file per region +; * The section name is the region name +; * + +[Default Region] + +; * +; * You MUST change this! It will NOT be done for you! +; * + +RegionUUID = 11111111-2222-3333-4444-555555555555 + +Location = 1000,1000 +InternalAddress = 0.0.0.0 +InternalPort = 9000 +AllowAlternatePorts = False +ExternalHostName = SYSTEMIP + +;; Estate ID or Name to connect region to, leave blank for console prompt, remember estate id can not be less than 100 +;; this value is only used when creating a region and after that will be ignored. 0 Will use the next auto id provided by the database +;TargetEstate = 0 + +; * +; * Variable-sized regions allows the creation of large, borderless spaces. +; * The default is 256 meters. For larger spaces, set these to multiples of 256. +; * For the time being, X and Y need to be the same. +; * +; SizeX = 512 +; SizeY = 512 + +; * Default region landing point used when no teleport coords are specified +; DefaultLanding = <128,128,30> + +; * +; * Prim data +; * This allows limiting the sizes of prims and the region prim count +; * + +; NonPhysicalPrimMax = 256 +; PhysicalPrimMax = 64 +; ClampPrimSize = False +; MaxPrims = 15000 +; MaxAgents = 100 + +; * Max prims per user (per parcel). +; * Negative values will disable the check. +; MaxPrimsPerUser = -1 + +; * +; * Multi-Tenancy. Only set if needed +; * + +; ScopeID = "00000000-0000-0000-0000-000000000000" + +; * +; * Product name (used in search from viewer 1.23 +; * + +; RegionType = "Mainland" + +; * Region Specific Static Maptiles: +; * Important: To use any kind of texture *assets* as a static maptile, the following +; * things must be set in the [Map] section of OpenSim.ini : +; * +; * MapImageModule = "MapImageModule" +; * GenerateMaptiles = false +; * +; * Now, there is a setting in [Map] in OpenSim.ini called +; * +; * MaptileStaticUUID = 00000000-0000-0000-0000-000000000000 +; * +; * where, given the criteria above, lets you specify the UUID of a texture asset to use +; * as a maptile *Simulator Wide*. Here, you can override that on a per region basis for +; * Simulators that run multiple regions: + +; MaptileStaticUUID = 00000000-0000-0000-0000-000000000000 + + +; * Region Specific Static Maptiles from file: +; * It is also possible to create maptiles using external image files of the right size +; * and supported formats (bmp,png,jpg in RGB 24bpp format) +; * +; * Important: To use any kind of texture *files* as a static maptile, the following +; * things must be set in the [Map] section of OpenSim.ini : +; * +; * MapImageModule = "MapImageModule" +; * GenerateMaptiles = true +; * +; * The image must be the same size in pixels as the region or varregion is in meters. +; * i.e. 256x256 pixels for single region of 256x256m, or 1280x1280 pixels for a varregion +; * of size 1280x1280m. The image can be loaded from anywhere by setting the path +; * ie: MaptileStaticFile = "maptiles/SomeFile.png" +; * +; * If this setting is used, then the base map is generated from this file instead of being +; * built using MapImageModule's terrain and prim renderer. Parcel 'for sale' overlays are +; * still drawn on top of the static map by the World Map module. + +; MaptileStaticFile = "SomeFile.png" diff --git a/image-opensim-herbal3d/config/config-basilalpha/misc.ini.ORIG b/image-opensim-herbal3d/config-osgrid/config-include/Final.ini similarity index 84% rename from image-opensim-herbal3d/config/config-basilalpha/misc.ini.ORIG rename to image-opensim-herbal3d/config-osgrid/config-include/Final.ini index 5c9b2bc..237cded 100755 --- a/image-opensim-herbal3d/config/config-basilalpha/misc.ini.ORIG +++ b/image-opensim-herbal3d/config-osgrid/config-include/Final.ini @@ -1,6 +1,5 @@ ; Misc over-rides and settings -; ===== OpenSim.ini ================================================= [Startup] MaxPoolThreads = 300 MinPoolThreads = 32 @@ -19,6 +18,20 @@ ; Turn off periodic statistics output to console LogShowStatsSeconds = 0 +[DatabaseService] + ; SQLite + ; Include-Storage = "/home/opensim/opensim/bin/config/config-include/storage/SQLiteStandalone.ini" + + ; MySql + ; Uncomment these lines if you want to use mysql storage + ; Change the connection string to your db details + StorageProvider = "OpenSim.Data.MySQL.dll" + ConnectionString = "Data Source=${Environment|MYSQL_DB_HOST};Database=${Environment|MYSQL_DB_DB};User ID=${Environment|MYSQL_DB_USER};Password=${Environment|MYSQL_DB_USER_PW};SslMode=None;" + +[BulletSim] + UseSeparatePhysicsThread = true + TerrainImplementation = 0 + [Network] MapTileURL = "http://maptiles.osgrid.org:80" @@ -61,18 +74,25 @@ [Estates] ; NOTE That names and passwords come from environment variables set from os-secrets - DefaultEstateName = Basil Estate - DefaultEstateOwnerName = MisterBlue Waves + DefaultEstateName = ${Environment|DEFAULT_ESTATE_NAME} + DefaultEstateOwnerName = ${Environment|DEFAULT_ESTATE_OWNER} ; ** Standalone Estate Settings ** ; The following parameters will only be used on a standalone system to ; create an estate owner that does not already exist - DefaultEstateOwnerUUID = 00000000-0000-0000-0000-000000000000 + DefaultEstateOwnerUUID = ${Environment|DEFAULT_ESTATE_OWNER_UUID} DefaultEstateOwnerEMail = owner@example.com - DefaultEstateOwnerPassword = OnlyOwnerKnows + DefaultEstateOwnerPassword = ${Environment|DEFAULT_ESTATE_OWNER_PW} [Terrain] SendTerrainUpdatesByViewDistance = true +[ExtendedPhysics] + Enabled = true + +[XEngine] + ; If one uses XEngine, use a larger thread stack + ThreadStackSize = 500000 + [YEngine] Enabled = true ScriptStackSize = 256 @@ -81,16 +101,7 @@ MinTimerInterval = 0.1 ScriptEnginesPath = "ScriptEngines" -[XEngine] - Enabled = false - ; If one uses XEngine, use a larger thread stack - ThreadStackSize = 500000 - -[BulletSim] - UseSeparatePhysicsThread = true - TerrainImplementation = 0 - -; ===== GridCommon.ini ============================================== +; ===== GridCommon.ini Override====================================== [Hypergrid] HomeURI = "http://hg.osgrid.org:80" GatekeeperURI = "http://hg.osgrid.org:80" @@ -141,17 +152,3 @@ MapImageServerURI = "http://maptiles.osgrid.org:80" [MuteListService] MuteListServiceURI = http://im.osgrid.org/mute/index.php - -; ===== OpenSim.ini ================================================= - -[DatabaseService] - ; SQLite - ; Include-Storage = "config/standalone/config-include/storage/SQLiteStandalone.ini" - - ; 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=MYSQL_DB_SOURCE;Database=MYSQL_DB_DB;User ID=MYSQL_DB_USER;Password=MYSQL_DB_USER_PASSWORD;Old Guids=true;" - diff --git a/image-opensim-herbal3d/config/config-basilalpha/config-include/FlotsamCache.ini b/image-opensim-herbal3d/config-osgrid/config-include/FlotsamCache.ini similarity index 100% rename from image-opensim-herbal3d/config/config-basilalpha/config-include/FlotsamCache.ini rename to image-opensim-herbal3d/config-osgrid/config-include/FlotsamCache.ini diff --git a/image-opensim-herbal3d/config/config-basilalpha/config-include/GridCommon.ini b/image-opensim-herbal3d/config-osgrid/config-include/GridCommon.ini similarity index 100% rename from image-opensim-herbal3d/config/config-basilalpha/config-include/GridCommon.ini rename to image-opensim-herbal3d/config-osgrid/config-include/GridCommon.ini diff --git a/image-opensim-herbal3d/config/config-basilalpha/config-include/GridHypergrid.ini b/image-opensim-herbal3d/config-osgrid/config-include/GridHypergrid.ini similarity index 100% rename from image-opensim-herbal3d/config/config-basilalpha/config-include/GridHypergrid.ini rename to image-opensim-herbal3d/config-osgrid/config-include/GridHypergrid.ini diff --git a/image-opensim-herbal3d/config/config-standalone/config-include/osslDefaultEnable.ini b/image-opensim-herbal3d/config-osgrid/config-include/osslDefaultEnable.ini similarity index 99% rename from image-opensim-herbal3d/config/config-standalone/config-include/osslDefaultEnable.ini rename to image-opensim-herbal3d/config-osgrid/config-include/osslDefaultEnable.ini index 3ecf3c5..bac9833 100644 --- a/image-opensim-herbal3d/config/config-standalone/config-include/osslDefaultEnable.ini +++ b/image-opensim-herbal3d/config-osgrid/config-include/osslDefaultEnable.ini @@ -110,7 +110,6 @@ 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 diff --git a/image-opensim-herbal3d/config/config-basilalpha/config-include/osslEnable.ini b/image-opensim-herbal3d/config-osgrid/config-include/osslEnable.ini similarity index 100% rename from image-opensim-herbal3d/config/config-basilalpha/config-include/osslEnable.ini rename to image-opensim-herbal3d/config-osgrid/config-include/osslEnable.ini diff --git a/image-opensim-herbal3d/config/config-basilalpha/config-include/storage/SQLiteStandalone.ini b/image-opensim-herbal3d/config-osgrid/config-include/storage/SQLiteStandalone.ini similarity index 100% rename from image-opensim-herbal3d/config/config-basilalpha/config-include/storage/SQLiteStandalone.ini rename to image-opensim-herbal3d/config-osgrid/config-include/storage/SQLiteStandalone.ini diff --git a/image-opensim-herbal3d/config/config-standalone/os-secrets b/image-opensim-herbal3d/config-osgrid/os-secrets similarity index 53% rename from image-opensim-herbal3d/config/config-standalone/os-secrets rename to image-opensim-herbal3d/config-osgrid/os-secrets index 4ff0336..7c75b4e 100644 --- a/image-opensim-herbal3d/config/config-standalone/os-secrets +++ b/image-opensim-herbal3d/config-osgrid/os-secrets @@ -4,29 +4,36 @@ # 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: +# "OPENSIM_CONFIGKEY". So, edit this file and do: # cp os-secrets tempFile # -# ccrypt -e -E "CONFIGKEY" < tempFile > os-secrets.crypt +# ccrypt -e -E "OPENSIM_CONFIGKEY" < tempFile > os-secrets.crypt # rm tempFile # or (exposing the key in the bash history): # ccrypt -e -K thekey < os-secrets > os-secrets.crypt # # Later, if you need to review the passwords, decrypt the file with: -# ccrypt -d -E "CONFIGKEY" < os-secrets.crypt +# ccrypt -d -E "OPENSIM_CONFIGKEY" < os-secrets.crypt # If this next variable is defined, MYSQL is configured -#export MYSQL_ROOT_PASSWORD=unknownStuff -#export MARIADB_ROOT_PASSWORD=unknownStuff -export MYSQL_DB_SOURCE=localhost +export MYSQL_ROOT_PASSWORD=unknownStuff +export MARIADB_ROOT_PASSWORD=unknownStuff +export MYSQL_DB_HOST=dbservice export MYSQL_DB_DB=opensim export MYSQL_DB_USER=opensim -export MYSQL_DB_USER_PASSWORD=dbpassword +export MYSQL_DB_USER_PW=moreUnknownStuff # The following are used to initialize estate if running standalone -export DEFAULT_ESTATE_NAME="Donalds Estate" +export DEFAULT_ESTATE_NAME="MyEstate" export DEFAULT_ESTATE_OWNER="Donald Duck" -export PW_FOR_DEFAULT_ESTATE_OWNER=anotherUnknownPassword +export DEFAULT_ESTATE_OWNER_UUID=ff5ec374-8028-43cb-ae58-8d38d70729e5 +export DEFAULT_ESTATE_OWNER_PW=SomeSecret + +# These are values that should be in other configurtion files. +# Someday, there might be a system that inserts these parameters into files. +# For the moment, the per-installation parameters must be editted by hand. +# Host name that is advertized to a client. Set in Includes.ini and Region.ini +export EXTERNAL_HOSTNAME=127.0.0.1 # Did I mention that one should NEVER, NEVER, EVER check-in a version # with the real passwords in it? diff --git a/image-opensim-herbal3d/config/scripts/initializeDb.sh b/image-opensim-herbal3d/config-osgrid/scripts/initializeDb.sh similarity index 77% rename from image-opensim-herbal3d/config/scripts/initializeDb.sh rename to image-opensim-herbal3d/config-osgrid/scripts/initializeDb.sh index 3c7c837..c4653bb 100755 --- a/image-opensim-herbal3d/config/scripts/initializeDb.sh +++ b/image-opensim-herbal3d/config-osgrid/scripts/initializeDb.sh @@ -1,10 +1,16 @@ #! /bin/bash # Script to create database 'opensim' in mysql if it does not exist. +# This is usually run in the container on the first time it is invoked. +# This creates the database for this simulator (MYSQL_DB_HOST) if it +# doesn't exist. +# # Someone has set the environment variables before running this. # Needs: -# MYSQL_DB_SOURCE # MYSQL_ROOT_PASSWORD -# OPENSIM_DB_PASSWORD +# MYSQL_DB_HOST +# MYSQL_DB_DB +# MYSQL_DB_USER +# MYSQL_DB_USER_PW OPENSIMBIN=${OPENSIMBIN:-/home/opensim/opensim/bin} OPENSIMCONFIG=${OPENSIMCONFIG:-$OPENSIMBIN/config} @@ -14,45 +20,43 @@ echo "opensim-docker: initializeDb.sh: " cd "$OPENSIMCONFIG" if [[ ! -z "$MYSQL_ROOT_PASSWORD" ]] ; then - for needed in "MYSQL_DB_DB" "MYSQL_DB_SOURCE" "MYSQL_DB_USER" "MYSQL_DB_USER_PASSWORD" ; do + for needed in "MYSQL_DB_DB" "MYSQL_DB_HOST" "MYSQL_DB_USER" "MYSQL_DB_USER_PW" ; do if [[ -z "$!needed" ]] ; then echo "opensim-docker: initializeDb.sh: missing required env parameter $needed" - echo "opensim-docker: initializeDb.sh: DATABASE NOT INITIALIZE" + echo "opensim-docker: initializeDb.sh: DATABASE NOT INITIALIZED" exit 5 fi done - # set a default for the account (downward compatibility) - export MYSQL_ROOT_ACCOUNT=${MYSQL_ROOT_ACCOUNT:-root} - SQLCMDS=/tmp/mymy$$ SQLOPTIONS=/tmp/mymyoptions$$ rm -f "$SQLCMDS" rm -f "$SQLOPTIONS" + # Create command file that creates the SQL database and SQL user for this simulator. cat > "$SQLCMDS" < "$SQLOPTIONS" < /dev/null ; do echo "opensim-docker: initializeDb.sh: Waiting on database to be ready" sleep 2 done echo "opensim-docker: initializeDb.sh: Database is ready" - HASDB=$(mysql --defaults-extra-file=$SQLOPTIONS -e "show databases" | grep "^opensim$") + HASDB=$(mysql --defaults-extra-file=$SQLOPTIONS -e "show databases" | grep "^${MYSQL_DB_DB}$") if [[ -z "$HASDB" ]] ; then echo "opensim-docker: initialzeDb.sh: creating opensim database" diff --git a/image-opensim-herbal3d/config/scripts/setEnvironment.sh b/image-opensim-herbal3d/config-osgrid/scripts/setEnvironment.sh similarity index 61% rename from image-opensim-herbal3d/config/scripts/setEnvironment.sh rename to image-opensim-herbal3d/config-osgrid/scripts/setEnvironment.sh index c2b49d8..a3f1956 100755 --- a/image-opensim-herbal3d/config/scripts/setEnvironment.sh +++ b/image-opensim-herbal3d/config-osgrid/scripts/setEnvironment.sh @@ -5,29 +5,21 @@ # to get all the values for the configuration files. OPENSIMBIN=${OPENSIMBIN:-/home/opensim/opensim/bin} +OPENSIMCONFIG=${OPENSIMCONFIG:-$OPENSIMBIN/config} -OPENSIMCONFIG="$OPENSIMBIN/config" cd "$OPENSIMCONFIG" -if [[ -e "./os-config" ]] ; then - source ./os-config - echo "opensim-docker: setEnvironment.sh: CONFIG_NAME=${CONFIG_NAME} from ./os-config" -else - export CONFIG_NAME=${CONFIG_NAME:-standalone} - echo "opensim-docker: setEnvironment.sh: CONFIG_NAME=${CONFIG_NAME} as default" -fi - # See if we have encrypted secrets unset HAVE_SECRETS -if [[ ! -z "$CONFIGKEY" ]] ; then - for secretsFile in $OPENSIMCONFIG/config-${CONFIG_NAME}/os-secrets.crypt $OPENSIMCONFIG/os-secrets.crypt ; do +if [[ ! -z "$OPENSIM_CONFIGKEY" ]] ; then + for secretsFile in $OPENSIMCONFIG/os-secrets.crypt ; do if [[ -e "$secretsFile" ]] ; then echo "opensim-docker: setEnvironment.sh: have secrets file \"{$secretsFile}\"" - source <(ccrypt -c -E CONFIGKEY "$secretsFile") + source <(ccrypt -c -E OPENSIM_CONFIGKEY "$secretsFile") HAVE_SECRETS=yes break; else - echo "opensim-docker: setEnvironment.sh: no secrets file" + echo "opensim-docker: setEnvironment.sh: no encrypted secrets file" fi done fi @@ -35,7 +27,7 @@ fi # If no encrypted secrets, maybe unsecure plain-text secrets are available if [[ -z "$HAVE_SECRETS" ]] ; then echo "opensim-docker: setEnvironment.sh: trying plain text secrets" - for secretsFile in $OPENSIMCONFIG/config-${CONFIG_NAME}/os-secrets $OPENSIMCONFIG/os-secrets ; do + for secretsFile in $OPENSIMCONFIG/os-secrets ; do if [[ -e "$secretsFile" ]] ; then echo "opensim-docker: setEnvironment.sh: plain text secrets from \"${secretsFile}\"" source "$secretsFile" diff --git a/image-opensim-herbal3d/config-osgrid/setup.sh b/image-opensim-herbal3d/config-osgrid/setup.sh new file mode 100755 index 0000000..0479191 --- /dev/null +++ b/image-opensim-herbal3d/config-osgrid/setup.sh @@ -0,0 +1,28 @@ +#! /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 + +export OPENSIMBIN=${OPENSIMBIN:-/home/opensim/opensim/bin} +export OPENSIMCONFIG=${OPENSIMCONFIG:-$OPENSIMBIN/config} + +echo "opensim-docker: setup.sh: OPENSIMCONFIG=\"${OPENSIMCONFIG}\"" + +FIRSTTIMEFLAG=${HOME}/.configFirstTime + +cd "$OPENSIMCONFIG" +# This sets CONFIG_NAME which is the configuration subdirectory +source ./scripts/setEnvironment.sh + +# If this is the first time run, do database setup and some one-time configuration updates +if [[ ! -e "$FIRSTTIMEFLAG" ]] ; then + echo "opensim-docker: setup.sh: first time" + cd "$OPENSIMCONFIG" + # Do any database account and db creation + ./scripts/initializeDb.sh + touch "$FIRSTTIMEFLAG" +fi + diff --git a/image-opensim-herbal3d/config-standalone/Includes.ini b/image-opensim-herbal3d/config-standalone/Includes.ini new file mode 100755 index 0000000..9faff31 --- /dev/null +++ b/image-opensim-herbal3d/config-standalone/Includes.ini @@ -0,0 +1,89 @@ +; This file is the first configuration file read. +; A normal configuration reads OpenSimDefaults.ini and then +; OpenSim.ini but, in this configuration setup, OpenSimDefaults.ini +; is read from the image, OpenSim.ini does not exist, and then +; this Includes.ini is read to setup global variables and then +; include the files that are in the $OPENSIMCONFIGDIR/config-include +; directory. +; Most of the included files are stock from the sources. The final "misc.ini" +; overlays values and should include the per-simulator instance changes. + +; The order of include files is important as new values overlay the previous values. + +; Note that all the .ini files in the regular bin/config-include have +; been null'ed out (they exist but do nothing). This is because +; the OpenSim sources often presume the config directory is "./". + + +; Values from the environment. Environment set from "os-secrets" so +; values are not set here. These entries just bring in the environment values. +; The values specified here are not used. +; Reference with "${Environment|Name}" +[Environment] + MYSQL_DB_HOST=dbservice + MYSQL_DB_DB=opensim + MYSQL_DB_USER=opensim + MYSQL_DB_USER_PW=NoOneKnowsIt + + DEFAULT_ESTATE_NAME=MyEstate + DEFAULT_ESTATE_OWNER=Fred Flintstone + DEFAULT_ESTATE_OWNER_UUID=ff5ec374-8028-43cb-ae58-8d38d70729e5 + DEFAULT_ESTATE_OWNER_PW=SomeSecret + +; Copy of the [Const] section in OpenSim.ini.example since it is used in +; some of the stock include files +[Const] + ; this section defines constants for grid services + ; to simplify other configuration files default settings + + ;# {BaseHostname} {} {BaseHostname} {"example.com" "127.0.0.1"} "127.0.0.1" + BaseHostname = "127.0.0.1" + + ;# {BaseURL} {} {BaseURL} {"http://${Const|BaseHostname}} "http://${Const|BaseHostname}" + BaseURL = http://${Const|BaseHostname} + + ; If you run a grid, several services should not be availble to world, access to them should be blocked on firewall + ; PrivatePort should closed at the firewall. + + ;# {PublicPort} {} {PublicPort} {8002 9000} "9000" + ; in case of a standalone this needs to match the parameter http_listener_port in section [Network] below + ; in that case the default is 9000 + PublicPort = "9000" + ; for a region on a grid, the grid services public port should be used, normal default is 8002 + ;PublicPort = "8002" + + ; you can also have them on a diferent url / IP + ;# {PrivURL} {} {PrivURL} {"http://${Const|BaseURL}} "${Const|BaseURL}" + PrivURL = ${Const|BaseURL} + + ;grid default private port 8003, not used in standalone + ;# {PrivatePort} {} {PrivatePort} {8003} "8003" + ; port to access private grid services. + ; grids that run all their regions should deny access to this port + ; from outside their networks, using firewalls + PrivatePort = "8003" + +[Startup] + ; Region definitions are in this directory (rather than 'bin/Regions') + ; Reads all .ini files in this directory + region_info_source = "filesystem" + regionload_regionsdir = "/home/opensim/opensim/bin/config/Regions" + ; Region specification from URL. + ; Expects XML (see http://opensimulator.org/wiki/Configuring_Regions) + ;region_info_source = "web" + ;regionload_webserver_url = "http://myoracle.example.com/Region?name=thisRegion" + +[Architecture] + Include-osslDefaultEnable = "/home/opensim/opensim/bin/config/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 = "/home/opensim/opensim/bin/config/config-include/osslEnable.ini" + Include-Architecture = "/home/opensim/opensim/bin/config/config-include/Standalone.ini" + ; 'Standalone.ini' is usually a copy of the default 'Standalone.ini.example' which + ; would include the now empty 'bin/config-include/StandaloneCommon.ini'. + ; The next line includes the 'StandaloneCommon.ini' from this configuration. + Include-Common = "/home/opensim/opensim/bin/config/config-include/StandaloneCommon.ini" + Include-Flotsam = "/home/opensim/opensim/bin/config/config-include/FlotsamCache.ini" + ; Last include so it overlays anything before. + ; Database is setup in this INI file as it has passwords, etc. + Include-MiscConfig = "/home/opensim/opensim/bin/config/config-include/Final.ini" diff --git a/image-opensim-herbal3d/config-standalone/README b/image-opensim-herbal3d/config-standalone/README new file mode 100644 index 0000000..6d46223 --- /dev/null +++ b/image-opensim-herbal3d/config-standalone/README @@ -0,0 +1,28 @@ +CONFIGURATION ON DOCKER IMAGE + +The OpenSim docker image is setup with most of the normal configuration nulled out. +The file 'bin/OpenSim.ini.example' has been copied to 'bin/OpenSim.ini' but all +the files that are normally included (from 'bin/config-include') have been emptied so none +of the normal network, grid, database, or cache setup is present. + +The configuration relies on the feature that OpenSimulator reads all INI files +in the 'bin/config' directory. + +The default installation is for a single region, standalone, sqlite based version +of OpenSimulator. 'bin/config/setup.sh' copies 'bin/config/standalone/Includes.ini' +into 'bin/config'. This file includes all the INI files +needed to configure same. 'Includes.ini' includes files from the 'standalone' +directory. This includes 'Standalone.ini' and 'StandaloneCommon.ini' to do their +normal configuration. It finally includes 'Misc.ini' which specifies parameters +that overlay everything previous for final setting and over-riding. + +Edit 'Misc.ini' for specific simulator settings. + +When the docker image is run, the startup script also checks for 'bin/config/setup.sh' +and, if it exists, it is executed. This allows initializing databases and any +passwords that need to be set in the configuration files. + +One can completely override the configuration included in this Docker image build +by mounting a bind volume over '/home/opensim/opensim/bin/config'. For this case, +all normal OpenSimulator configuration is replaced by whatever one puts in +that 'config' directory. diff --git a/image-opensim-herbal3d/config-standalone/Regions/.keep b/image-opensim-herbal3d/config-standalone/Regions/.keep new file mode 100644 index 0000000..e69de29 diff --git a/image-opensim-herbal3d/config-standalone/Regions/Regions.ini b/image-opensim-herbal3d/config-standalone/Regions/Regions.ini new file mode 100644 index 0000000..cbcc63c --- /dev/null +++ b/image-opensim-herbal3d/config-standalone/Regions/Regions.ini @@ -0,0 +1,105 @@ +; * This is an example region config file. +; * +; * If OpenSimulator is started up without any regions, it will ask you configuration questions to generate a Regions.ini file for you. +; * So there is no need to change this file directly, it is only for reference. +; * However, if you prefer you can also copy this file to Regions.ini and appropriately change the parameters below. +; * Only files ending with .ini and .xml in this directly will be loaded by OpenSimulator. +; * +; * You can multiple regions into one file or make one file per region +; * The section name is the region name +; * + +[Default Region] + +; * +; * You MUST change this! It will NOT be done for you! +; * + +RegionUUID = 2f75645d-acfd-4296-9cc5-8b1f0537fdaf + +Location = 1000,1000 +InternalAddress = 0.0.0.0 +InternalPort = 9000 +AllowAlternatePorts = False +ExternalHostName = SYSTEMIP + +;; Estate ID or Name to connect region to, leave blank for console prompt, remember estate id can not be less than 100 +;; this value is only used when creating a region and after that will be ignored. 0 Will use the next auto id provided by the database +;TargetEstate = 0 + +; * +; * Variable-sized regions allows the creation of large, borderless spaces. +; * The default is 256 meters. For larger spaces, set these to multiples of 256. +; * For the time being, X and Y need to be the same. +; * +; SizeX = 512 +; SizeY = 512 + +; * Default region landing point used when no teleport coords are specified +; DefaultLanding = <128,128,30> + +; * +; * Prim data +; * This allows limiting the sizes of prims and the region prim count +; * + +; NonPhysicalPrimMax = 256 +; PhysicalPrimMax = 64 +; ClampPrimSize = False +; MaxPrims = 15000 +; MaxAgents = 100 + +; * Max prims per user (per parcel). +; * Negative values will disable the check. +; MaxPrimsPerUser = -1 + +; * +; * Multi-Tenancy. Only set if needed +; * + +; ScopeID = "00000000-0000-0000-0000-000000000000" + +; * +; * Product name (used in search from viewer 1.23 +; * + +; RegionType = "Mainland" + +; * Region Specific Static Maptiles: +; * Important: To use any kind of texture *assets* as a static maptile, the following +; * things must be set in the [Map] section of OpenSim.ini : +; * +; * MapImageModule = "MapImageModule" +; * GenerateMaptiles = false +; * +; * Now, there is a setting in [Map] in OpenSim.ini called +; * +; * MaptileStaticUUID = 00000000-0000-0000-0000-000000000000 +; * +; * where, given the criteria above, lets you specify the UUID of a texture asset to use +; * as a maptile *Simulator Wide*. Here, you can override that on a per region basis for +; * Simulators that run multiple regions: + +; MaptileStaticUUID = 00000000-0000-0000-0000-000000000000 + + +; * Region Specific Static Maptiles from file: +; * It is also possible to create maptiles using external image files of the right size +; * and supported formats (bmp,png,jpg in RGB 24bpp format) +; * +; * Important: To use any kind of texture *files* as a static maptile, the following +; * things must be set in the [Map] section of OpenSim.ini : +; * +; * MapImageModule = "MapImageModule" +; * GenerateMaptiles = true +; * +; * The image must be the same size in pixels as the region or varregion is in meters. +; * i.e. 256x256 pixels for single region of 256x256m, or 1280x1280 pixels for a varregion +; * of size 1280x1280m. The image can be loaded from anywhere by setting the path +; * ie: MaptileStaticFile = "maptiles/SomeFile.png" +; * +; * If this setting is used, then the base map is generated from this file instead of being +; * built using MapImageModule's terrain and prim renderer. Parcel 'for sale' overlays are +; * still drawn on top of the static map by the World Map module. + +; MaptileStaticFile = "SomeFile.png" diff --git a/image-opensim-herbal3d/config-standalone/Regions/Regions.ini.example b/image-opensim-herbal3d/config-standalone/Regions/Regions.ini.example new file mode 100644 index 0000000..3f47cca --- /dev/null +++ b/image-opensim-herbal3d/config-standalone/Regions/Regions.ini.example @@ -0,0 +1,105 @@ +; * This is an example region config file. +; * +; * If OpenSimulator is started up without any regions, it will ask you configuration questions to generate a Regions.ini file for you. +; * So there is no need to change this file directly, it is only for reference. +; * However, if you prefer you can also copy this file to Regions.ini and appropriately change the parameters below. +; * Only files ending with .ini and .xml in this directly will be loaded by OpenSimulator. +; * +; * You can multiple regions into one file or make one file per region +; * The section name is the region name +; * + +[Default Region] + +; * +; * You MUST change this! It will NOT be done for you! +; * + +RegionUUID = 11111111-2222-3333-4444-555555555555 + +Location = 1000,1000 +InternalAddress = 0.0.0.0 +InternalPort = 9000 +AllowAlternatePorts = False +ExternalHostName = SYSTEMIP + +;; Estate ID or Name to connect region to, leave blank for console prompt, remember estate id can not be less than 100 +;; this value is only used when creating a region and after that will be ignored. 0 Will use the next auto id provided by the database +;TargetEstate = 0 + +; * +; * Variable-sized regions allows the creation of large, borderless spaces. +; * The default is 256 meters. For larger spaces, set these to multiples of 256. +; * For the time being, X and Y need to be the same. +; * +; SizeX = 512 +; SizeY = 512 + +; * Default region landing point used when no teleport coords are specified +; DefaultLanding = <128,128,30> + +; * +; * Prim data +; * This allows limiting the sizes of prims and the region prim count +; * + +; NonPhysicalPrimMax = 256 +; PhysicalPrimMax = 64 +; ClampPrimSize = False +; MaxPrims = 15000 +; MaxAgents = 100 + +; * Max prims per user (per parcel). +; * Negative values will disable the check. +; MaxPrimsPerUser = -1 + +; * +; * Multi-Tenancy. Only set if needed +; * + +; ScopeID = "00000000-0000-0000-0000-000000000000" + +; * +; * Product name (used in search from viewer 1.23 +; * + +; RegionType = "Mainland" + +; * Region Specific Static Maptiles: +; * Important: To use any kind of texture *assets* as a static maptile, the following +; * things must be set in the [Map] section of OpenSim.ini : +; * +; * MapImageModule = "MapImageModule" +; * GenerateMaptiles = false +; * +; * Now, there is a setting in [Map] in OpenSim.ini called +; * +; * MaptileStaticUUID = 00000000-0000-0000-0000-000000000000 +; * +; * where, given the criteria above, lets you specify the UUID of a texture asset to use +; * as a maptile *Simulator Wide*. Here, you can override that on a per region basis for +; * Simulators that run multiple regions: + +; MaptileStaticUUID = 00000000-0000-0000-0000-000000000000 + + +; * Region Specific Static Maptiles from file: +; * It is also possible to create maptiles using external image files of the right size +; * and supported formats (bmp,png,jpg in RGB 24bpp format) +; * +; * Important: To use any kind of texture *files* as a static maptile, the following +; * things must be set in the [Map] section of OpenSim.ini : +; * +; * MapImageModule = "MapImageModule" +; * GenerateMaptiles = true +; * +; * The image must be the same size in pixels as the region or varregion is in meters. +; * i.e. 256x256 pixels for single region of 256x256m, or 1280x1280 pixels for a varregion +; * of size 1280x1280m. The image can be loaded from anywhere by setting the path +; * ie: MaptileStaticFile = "maptiles/SomeFile.png" +; * +; * If this setting is used, then the base map is generated from this file instead of being +; * built using MapImageModule's terrain and prim renderer. Parcel 'for sale' overlays are +; * still drawn on top of the static map by the World Map module. + +; MaptileStaticFile = "SomeFile.png" diff --git a/image-opensim-herbal3d/config/config-standalone/misc.ini.ORIG b/image-opensim-herbal3d/config-standalone/config-include/Final.ini similarity index 61% rename from image-opensim-herbal3d/config/config-standalone/misc.ini.ORIG rename to image-opensim-herbal3d/config-standalone/config-include/Final.ini index 2c085e6..6dfc32f 100755 --- a/image-opensim-herbal3d/config/config-standalone/misc.ini.ORIG +++ b/image-opensim-herbal3d/config-standalone/config-include/Final.ini @@ -14,25 +14,24 @@ [DatabaseService] ; SQLite - Include-Storage = "config/standalone/config-include/storage/SQLiteStandalone.ini" + ; Include-Storage = "/home/opensim/opensim/bin/config/config-include/storage/SQLiteStandalone.ini" ; 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=dbservice;Database=MYSQL_DB_DB;User ID=MYSQL_DB_USER;Password=MSQL_DB_USER_PASSWORD;Old Guids=true;" + StorageProvider = "OpenSim.Data.MySQL.dll" + ConnectionString = "Data Source=${Environment|MYSQL_DB_HOST};Database=${Environment|MYSQL_DB_DB};User ID=${Environment|MYSQL_DB_USER};Password=${Environment|MYSQL_DB_USER_PW};SslMode=None;" [Estates] ; NOTE That names and passwords come from environment variables set from os-secrets - DefaultEstateName = DEFAULT_ESTATE_NAME - DefaultEstateOwnerName = DEFAULT_ESTATE_OWNER + DefaultEstateName = ${Environment|DEFAULT_ESTATE_NAME} + DefaultEstateOwnerName = ${Environment|DEFAULT_ESTATE_OWNER} ; ** Standalone Estate Settings ** ; The following parameters will only be used on a standalone system to ; create an estate owner that does not already exist - DefaultEstateOwnerUUID = 00000000-0000-0000-0000-000000000000 + DefaultEstateOwnerUUID = ${Environment|DEFAULT_ESTATE_OWNER_UUID} DefaultEstateOwnerEMail = owner@example.com - DefaultEstateOwnerPassword = PW_FOR_DEFAULT_ESTATE_OWNER + DefaultEstateOwnerPassword = ${Environment|DEFAULT_ESTATE_OWNER_PW} [Terrain] SendTerrainUpdatesByViewDistance = true diff --git a/image-opensim-herbal3d/config/config-standalone/config-include/FlotsamCache.ini b/image-opensim-herbal3d/config-standalone/config-include/FlotsamCache.ini similarity index 100% rename from image-opensim-herbal3d/config/config-standalone/config-include/FlotsamCache.ini rename to image-opensim-herbal3d/config-standalone/config-include/FlotsamCache.ini diff --git a/image-opensim-herbal3d/config/config-basilalpha/config-include/Standalone.ini b/image-opensim-herbal3d/config-standalone/config-include/Standalone.ini similarity index 100% rename from image-opensim-herbal3d/config/config-basilalpha/config-include/Standalone.ini rename to image-opensim-herbal3d/config-standalone/config-include/Standalone.ini diff --git a/image-opensim-herbal3d/config/config-basilalpha/config-include/StandaloneCommon.ini b/image-opensim-herbal3d/config-standalone/config-include/StandaloneCommon.ini similarity index 97% rename from image-opensim-herbal3d/config/config-basilalpha/config-include/StandaloneCommon.ini rename to image-opensim-herbal3d/config-standalone/config-include/StandaloneCommon.ini index 517edd5..524021f 100644 --- a/image-opensim-herbal3d/config/config-basilalpha/config-include/StandaloneCommon.ini +++ b/image-opensim-herbal3d/config-standalone/config-include/StandaloneCommon.ini @@ -8,11 +8,13 @@ ; 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 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 + ; 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 + ; If using MySQL 8.0.4 or later, check that default-authentication-plugin=mysql_native_password + ; rather than caching_sha2_password is set in /etc/mysql/mysql.conf.d/mysqld.cnf (not applicable to MariaDB). ;StorageProvider = "OpenSim.Data.MySQL.dll" ;ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;SslMode=None;" @@ -33,7 +35,7 @@ ; 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=***;" + ;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;SSL Mode = Disable" [Hypergrid] ; Uncomment the variable GatekeeperURI to enable diff --git a/image-opensim-herbal3d/config/config-basilalpha/config-include/osslDefaultEnable.ini b/image-opensim-herbal3d/config-standalone/config-include/osslDefaultEnable.ini similarity index 99% rename from image-opensim-herbal3d/config/config-basilalpha/config-include/osslDefaultEnable.ini rename to image-opensim-herbal3d/config-standalone/config-include/osslDefaultEnable.ini index 3ecf3c5..bac9833 100644 --- a/image-opensim-herbal3d/config/config-basilalpha/config-include/osslDefaultEnable.ini +++ b/image-opensim-herbal3d/config-standalone/config-include/osslDefaultEnable.ini @@ -110,7 +110,6 @@ 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 diff --git a/image-opensim-herbal3d/config/config-standalone/config-include/osslEnable.ini b/image-opensim-herbal3d/config-standalone/config-include/osslEnable.ini similarity index 100% rename from image-opensim-herbal3d/config/config-standalone/config-include/osslEnable.ini rename to image-opensim-herbal3d/config-standalone/config-include/osslEnable.ini diff --git a/image-opensim-herbal3d/config/config-standalone/config-include/storage/SQLiteStandalone.ini b/image-opensim-herbal3d/config-standalone/config-include/storage/SQLiteStandalone.ini similarity index 100% rename from image-opensim-herbal3d/config/config-standalone/config-include/storage/SQLiteStandalone.ini rename to image-opensim-herbal3d/config-standalone/config-include/storage/SQLiteStandalone.ini diff --git a/image-opensim-herbal3d/config/config-basilalpha/os-secrets b/image-opensim-herbal3d/config-standalone/os-secrets similarity index 53% rename from image-opensim-herbal3d/config/config-basilalpha/os-secrets rename to image-opensim-herbal3d/config-standalone/os-secrets index ed08b59..7c75b4e 100644 --- a/image-opensim-herbal3d/config/config-basilalpha/os-secrets +++ b/image-opensim-herbal3d/config-standalone/os-secrets @@ -4,29 +4,36 @@ # 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: +# "OPENSIM_CONFIGKEY". So, edit this file and do: # cp os-secrets tempFile # -# ccrypt -e -E "CONFIGKEY" < tempFile > os-secrets.crypt +# ccrypt -e -E "OPENSIM_CONFIGKEY" < tempFile > os-secrets.crypt # rm tempFile # or (exposing the key in the bash history): # ccrypt -e -K thekey < os-secrets > os-secrets.crypt # # Later, if you need to review the passwords, decrypt the file with: -# ccrypt -d -E "CONFIGKEY" < os-secrets.crypt +# ccrypt -d -E "OPENSIM_CONFIGKEY" < os-secrets.crypt # If this next variable is defined, MYSQL is configured -export MYSQL_ROOT_PASSWORD=NotFoundAnywhere -export MARIADB_ROOT_PASSWORD=NotFoundAnywhere -export MYSQL_DB_SOURCE=dbservice +export MYSQL_ROOT_PASSWORD=unknownStuff +export MARIADB_ROOT_PASSWORD=unknownStuff +export MYSQL_DB_HOST=dbservice export MYSQL_DB_DB=opensim export MYSQL_DB_USER=opensim -export MYSQL_DB_USER_PASSWORD=StuffAndNonsense +export MYSQL_DB_USER_PW=moreUnknownStuff # The following are used to initialize estate if running standalone -export DEFAULT_ESTATE_NAME="Basil Estate" +export DEFAULT_ESTATE_NAME="MyEstate" export DEFAULT_ESTATE_OWNER="Donald Duck" -export PW_FOR_DEFAULT_ESTATE_OWNER=OnlyOwnerKnows +export DEFAULT_ESTATE_OWNER_UUID=ff5ec374-8028-43cb-ae58-8d38d70729e5 +export DEFAULT_ESTATE_OWNER_PW=SomeSecret + +# These are values that should be in other configurtion files. +# Someday, there might be a system that inserts these parameters into files. +# For the moment, the per-installation parameters must be editted by hand. +# Host name that is advertized to a client. Set in Includes.ini and Region.ini +export EXTERNAL_HOSTNAME=127.0.0.1 # Did I mention that one should NEVER, NEVER, EVER check-in a version # with the real passwords in it? diff --git a/image-opensim-herbal3d/config-standalone/scripts/initializeDb.sh b/image-opensim-herbal3d/config-standalone/scripts/initializeDb.sh new file mode 100755 index 0000000..c4653bb --- /dev/null +++ b/image-opensim-herbal3d/config-standalone/scripts/initializeDb.sh @@ -0,0 +1,73 @@ +#! /bin/bash +# Script to create database 'opensim' in mysql if it does not exist. +# This is usually run in the container on the first time it is invoked. +# This creates the database for this simulator (MYSQL_DB_HOST) if it +# doesn't exist. +# +# Someone has set the environment variables before running this. +# Needs: +# MYSQL_ROOT_PASSWORD +# MYSQL_DB_HOST +# MYSQL_DB_DB +# MYSQL_DB_USER +# MYSQL_DB_USER_PW + +OPENSIMBIN=${OPENSIMBIN:-/home/opensim/opensim/bin} +OPENSIMCONFIG=${OPENSIMCONFIG:-$OPENSIMBIN/config} + +echo "opensim-docker: initializeDb.sh: " + +cd "$OPENSIMCONFIG" + +if [[ ! -z "$MYSQL_ROOT_PASSWORD" ]] ; then + for needed in "MYSQL_DB_DB" "MYSQL_DB_HOST" "MYSQL_DB_USER" "MYSQL_DB_USER_PW" ; do + if [[ -z "$!needed" ]] ; then + echo "opensim-docker: initializeDb.sh: missing required env parameter $needed" + echo "opensim-docker: initializeDb.sh: DATABASE NOT INITIALIZED" + exit 5 + fi + done + + SQLCMDS=/tmp/mymy$$ + SQLOPTIONS=/tmp/mymyoptions$$ + rm -f "$SQLCMDS" + rm -f "$SQLOPTIONS" + + # Create command file that creates the SQL database and SQL user for this simulator. + cat > "$SQLCMDS" < "$SQLOPTIONS" < /dev/null ; do + echo "opensim-docker: initializeDb.sh: Waiting on database to be ready" + sleep 2 + done + echo "opensim-docker: initializeDb.sh: Database is ready" + + + HASDB=$(mysql --defaults-extra-file=$SQLOPTIONS -e "show databases" | grep "^${MYSQL_DB_DB}$") + + if [[ -z "$HASDB" ]] ; then + echo "opensim-docker: initialzeDb.sh: creating opensim database" + mysql --defaults-extra-file=$SQLOPTIONS < "$SQLCMDS" + else + echo "opensim-docker: initialzeDb.sh: opensim database has already been created" + fi + + rm -f "$SQLCMDS" + rm -f "$SQLOPTIONS" +else + echo "opensim-docker: initializeDb.sh: Not configuring SQL database" +fi + diff --git a/image-opensim-herbal3d/config-standalone/scripts/setEnvironment.sh b/image-opensim-herbal3d/config-standalone/scripts/setEnvironment.sh new file mode 100755 index 0000000..a3f1956 --- /dev/null +++ b/image-opensim-herbal3d/config-standalone/scripts/setEnvironment.sh @@ -0,0 +1,39 @@ +#! /bin/bash +# Script that sets up the environment variables +# This script is run before the docker-compose file is run to get the +# database password and it is run when the opensim Docker container starts +# to get all the values for the configuration files. + +OPENSIMBIN=${OPENSIMBIN:-/home/opensim/opensim/bin} +OPENSIMCONFIG=${OPENSIMCONFIG:-$OPENSIMBIN/config} + +cd "$OPENSIMCONFIG" + +# See if we have encrypted secrets +unset HAVE_SECRETS +if [[ ! -z "$OPENSIM_CONFIGKEY" ]] ; then + for secretsFile in $OPENSIMCONFIG/os-secrets.crypt ; do + if [[ -e "$secretsFile" ]] ; then + echo "opensim-docker: setEnvironment.sh: have secrets file \"{$secretsFile}\"" + source <(ccrypt -c -E OPENSIM_CONFIGKEY "$secretsFile") + HAVE_SECRETS=yes + break; + else + echo "opensim-docker: setEnvironment.sh: no encrypted secrets file" + fi + done +fi + +# If no encrypted secrets, maybe unsecure plain-text secrets are available +if [[ -z "$HAVE_SECRETS" ]] ; then + echo "opensim-docker: setEnvironment.sh: trying plain text secrets" + for secretsFile in $OPENSIMCONFIG/os-secrets ; do + if [[ -e "$secretsFile" ]] ; then + echo "opensim-docker: setEnvironment.sh: plain text secrets from \"${secretsFile}\"" + source "$secretsFile" + break; + else + echo "opensim-docker: setEnvironment.sh: no plain text secrets file" + fi + done +fi diff --git a/image-opensim-herbal3d/config-standalone/setup.sh b/image-opensim-herbal3d/config-standalone/setup.sh new file mode 100755 index 0000000..0479191 --- /dev/null +++ b/image-opensim-herbal3d/config-standalone/setup.sh @@ -0,0 +1,28 @@ +#! /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 + +export OPENSIMBIN=${OPENSIMBIN:-/home/opensim/opensim/bin} +export OPENSIMCONFIG=${OPENSIMCONFIG:-$OPENSIMBIN/config} + +echo "opensim-docker: setup.sh: OPENSIMCONFIG=\"${OPENSIMCONFIG}\"" + +FIRSTTIMEFLAG=${HOME}/.configFirstTime + +cd "$OPENSIMCONFIG" +# This sets CONFIG_NAME which is the configuration subdirectory +source ./scripts/setEnvironment.sh + +# If this is the first time run, do database setup and some one-time configuration updates +if [[ ! -e "$FIRSTTIMEFLAG" ]] ; then + echo "opensim-docker: setup.sh: first time" + cd "$OPENSIMCONFIG" + # Do any database account and db creation + ./scripts/initializeDb.sh + touch "$FIRSTTIMEFLAG" +fi + diff --git a/image-opensim-herbal3d/config/Loden.ini b/image-opensim-herbal3d/config/Loden.ini deleted file mode 100644 index 093886e..0000000 --- a/image-opensim-herbal3d/config/Loden.ini +++ /dev/null @@ -1,34 +0,0 @@ -; Example ini file. Put in the directory bin/config -[Loden] - Enabled=true - - ; Base directory for Loden asset storage, - OutputDir = "./LodenAssets" - ; the string added to be beginning of asset name to create URI, - URIBase = "./" - ; Whether to write .gltf or .glb file, - WriteBinaryGltf = false - - ; Number of vertices to cause splitting of buffer files, - VerticesMaxForBuffer = 50000 - ; whether double sided mesh rendering specified in GLTF, - DoubleSided = false - - ; Whether to reduce the terrain resolution by 2, - HalfRezTerrain = true - - ; The maximum pixel dimension for images if exporting, - ;TextureMaxSize = 1024 - TextureMaxSize = 256 - ; One of: PNG, JPG, GIF, BMP, PNG - PreferredTextureFormat = "PNG" - ; One of: PNG, JPG, GIF, BMP, - PreferredTextureFormatIfNoTransparency = "JPG" - - ; If to delay mesh scaling to display/GPU time, - DisplayTimeScaling = false - - ; log detail BScene/BInstance object building, - LogBuilding = false - ; output detailed gltf construction details, - LogGltfBuilding = false diff --git a/image-opensim-herbal3d/config/OSAuth.ini b/image-opensim-herbal3d/config/OSAuth.ini deleted file mode 100644 index d2a6b67..0000000 --- a/image-opensim-herbal3d/config/OSAuth.ini +++ /dev/null @@ -1,2 +0,0 @@ -[OSAuth] - Enabled=true; diff --git a/image-opensim-herbal3d/config/RaguOS.ini b/image-opensim-herbal3d/config/RaguOS.ini deleted file mode 100644 index 2244568..0000000 --- a/image-opensim-herbal3d/config/RaguOS.ini +++ /dev/null @@ -1,56 +0,0 @@ -[Ragu] - Enabled=true - - ; Hostname for external clients it access. Computed if zero length - ExternalAccessHostname = "basil.bluestuff.org" - - ; For debugging, you can turn off auth checks for fetching assets - ShouldEnforceAccessAuthorization=true - - AssetUrlTemplate = "https://{0}/Assets{2}" - - ; Each transport for each layer takes parameters. The current ones - ; defined are: - ; WSConnectionHost (default "0.0.0.0" if not specified - ; WSIsSecure (default false) - ; WSPort (at least base must be specified to compute port or specific port) - ; WSCertificate (must be specified for secure connections) - ; DisableNaglesAlgorithm (default true if not specified). - ; - ; The parameters are computed based on values that can be in RegionInfo or in - ; the RaguOS.ini file. If specific port numbers are not specified, they are - ; computed based on a base port number given in one if the INI files. - ; To find a value, this looks for value in order: - ; "SpaceServer.LAYER.PARAM" in RegionInfo - ; "SpaceServer.LAYER.PARAM" in RaguOS.ini - ; "SpaceServer.PARAM" in RegionInfo (if found, builds value based on LAYER) - ; "SpaceServer.PARAM" in RaguOS.ini (if found, builds value based on LAYER) - ; For ports, if the above tests don't find anything, it looks for: - ; "SpaceServer.LAYER.BasePort" in RegionInfo - ; "SpaceServer.LAYER.BasePort" in RaguOS.ini - ; "SpaceServer.BasePort" in RegionInfo - ; "SpaceServer.BasePort" in RaguOS.ini - ; If any of these base ports are found, the port number is computed using - ; that number and the value in LayerPortOffset. (see RaguParams.cs) - - ; NOTE: The following parameters are per-simulator and per transport - ; is in either bin/config or included into OpenSim.ini. - ; If there are multiple regions per simulator, these parameters - ; can also be included in the "Regions.ini" file. - ; For simple, insecure Basil Viewer connections, "Regions.ini" could look like: - ; - ; [RegionOne] - ; RegionUUID = 88247529-5f81-400d-abf9-888327c5fd91 - ; Location = "1000,1000" - ; InternalAddress = "0.0.0.0" - ; InternalPort = 14500 - ; SpaceServer_BasePort = 14510 - ; [RegionTwo] - ; RegionUUID = d3159861-8361-480b-947f-15a37b59f4a7 - ; Location = "1000,1001" - ; InternalAddress = "0.0.0.0" - ; InternalPort = 14520 - ; SpaceServer_BasePort = 14530 - ; - ; Whether to accect secure or unsecure WebSocket connections - SpaceServer_WSIsSecure = false diff --git a/image-opensim-herbal3d/config/config-basilalpha/Includes.ini b/image-opensim-herbal3d/config/config-basilalpha/Includes.ini deleted file mode 100755 index af84bf3..0000000 --- a/image-opensim-herbal3d/config/config-basilalpha/Includes.ini +++ /dev/null @@ -1,24 +0,0 @@ -; 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/config-basilalpha/Regions" - -[Architecture] - Include-osslDefaultEnable = "config/config-basilalpha/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/config-basilalpha/config-include/osslEnable.ini" - Include-Architecture = "config/config-basilalpha/config-include/GridHypergrid.ini" - ; 'GridHypergrid.ini' is usually a copy of the default 'GridHypergrid.ini.example' which - ; would include the now empty 'bin/config-include/StandaloneCommon.ini'. - ; The next line includes the 'GridCommon.ini' from this configuration. - Include-Common = "config/config-basilalpha/config-include/GridCommon.ini" - Include-Flotsam = "config/config-basilalpha/config-include/FlotsamCache.ini" - ; Last include so it overlays anything before. - ; Database is setup in this INI file as it has passwords, etc. - Include-MiscConfig = "config/config-basilalpha/misc.ini" diff --git a/image-opensim-herbal3d/config/config-basilalpha/Regions/Regions.ini b/image-opensim-herbal3d/config/config-basilalpha/Regions/Regions.ini deleted file mode 100644 index c660901..0000000 --- a/image-opensim-herbal3d/config/config-basilalpha/Regions/Regions.ini +++ /dev/null @@ -1,27 +0,0 @@ -[BasilAlpha] - -RegionUUID = 8a4ac952-5439-46a8-a394-92285f03b024 - -Location = 7400,7200 -InternalAddress = 0.0.0.0 -InternalPort = 9050 -AllowAlternatePorts = False -ExternalHostName = "basil.bluestuff.org" - -DefaultLanding = <128,128,40> - -NonPhysicalPrimMax = 256 -PhysicalPrimMax = 64 -ClampPrimSize = False -MaxPrims = 20000 -MaxAgents = 20 - -MaxPrimsPerUser = 1000 - -MasterAvatarFirstName = Misterblue -MasterAvatarLastName = Waves - -SpaceServer_WSExternalUrlTemplate = "wss://{0}/wss/" -SpaceServer_WSDisableNaglesAlgorithm = true - - diff --git a/image-opensim-herbal3d/config/config-basilalpha/config-include/Grid.ini b/image-opensim-herbal3d/config/config-basilalpha/config-include/Grid.ini deleted file mode 100644 index 9520b7c..0000000 --- a/image-opensim-herbal3d/config/config-basilalpha/config-include/Grid.ini +++ /dev/null @@ -1,63 +0,0 @@ -;; -;; 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/image-opensim-herbal3d/config/config-basilalpha/config-include/StandaloneHypergrid.ini b/image-opensim-herbal3d/config/config-basilalpha/config-include/StandaloneHypergrid.ini deleted file mode 100644 index 6265bd0..0000000 --- a/image-opensim-herbal3d/config/config-basilalpha/config-include/StandaloneHypergrid.ini +++ /dev/null @@ -1,198 +0,0 @@ -;; -;; Please don't change this file. -;; All optional settings are in StandaloneCommon.ini.example, -;; which you can copy and change. -;; - -[Startup] - WorldMapModule = "HGWorldMap" - -[Modules] - AssetServices = "RegionAssetConnector" - InventoryServices = "HGInventoryBroker" - NeighbourServices = "NeighbourServicesOutConnector" - AuthenticationServices = "LocalAuthenticationServicesConnector" - AuthorizationServices = "LocalAuthorizationServicesConnector" - GridServices = "RegionGridServicesConnector" - PresenceServices = "LocalPresenceServicesConnector" - UserAccountServices = "LocalUserAccountServicesConnector" - AgentPreferencesServices= "LocalAgentPreferencesServicesConnector" - GridUserServices = "LocalGridUserServicesConnector" - SimulationServices = "RemoteSimulationConnectorModule" - AvatarServices = "LocalAvatarServicesConnector" - UserProfilesServices = "LocalUserProfilesServicesConnector" - MapImageService = "MapImageServiceModule" - EntityTransferModule = "HGEntityTransferModule" - InventoryAccessModule = "HGInventoryAccessModule" - FriendsModule = "HGFriendsModule" - UserManagementModule = "HGUserManagementModule" - SearchModule = "BasicSearchModule" - MuteListService = "LocalMuteListServicesConnector" - - InventoryServiceInConnector = true - AssetServiceInConnector = true - HypergridServiceInConnector = true - NeighbourServiceInConnector = true - LibraryModule = true - LLLoginServiceInConnector = true - GridInfoServiceInConnector = true - AuthenticationServiceInConnector = true - SimulationServiceInConnector = true - MapImageServiceInConnector = true - -[Messaging] - MessageTransferModule = HGMessageTransferModule - LureModule = HGLureModule - -[SimulationDataStore] - LocalServiceModule = "OpenSim.Services.SimulationService.dll:SimulationDataService" - -[EstateDataStore] - LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService" - -[AssetService] - LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService" - - ; For RegionAssetConnector - LocalGridAssetService = "OpenSim.Services.AssetService.dll:AssetService" - HypergridAssetService = "OpenSim.Services.Connectors.dll:HGAssetServiceConnector" - -[InventoryService] - ; For HGInventoryBroker - LocalGridInventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" - -[AvatarService] - LocalServiceModule = "OpenSim.Services.AvatarService.dll:AvatarService" - -[LibraryService] - LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService" - LibraryName = "OpenSim Library" - DefaultLibrary = "./inventory/Libraries.xml" - -[AuthenticationService] - LocalServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" - -[GridService] - LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" - Realm = "regions" - StorageProvider = "OpenSim.Data.Null.dll" - - ; Needed to display non-default map tile images for remote regions - AssetService = "OpenSim.Services.AssetService.dll:AssetService" - - HypergridLinker = true - AllowHypergridMapSearch = true - -[PresenceService] - LocalServiceModule = "OpenSim.Services.PresenceService.dll:PresenceService" - StorageProvider = "OpenSim.Data.Null.dll" - -[UserAccountService] - LocalServiceModule = "OpenSim.Services.UserAccountService.dll:UserAccountService" - - ;; These are for creating new accounts by the service - AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" - GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" - GridService = "OpenSim.Services.GridService.dll:GridService" - InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" - AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" - - ;; This switch creates the minimum set of body parts and avatar entries for a viewer 2 to show a default "Ruth" avatar rather than a cloud. - CreateDefaultAvatarEntries = true - -[GridUserService] - LocalServiceModule = "OpenSim.Services.UserAccountService.dll:GridUserService" - -[FriendsService] - LocalServiceModule = "OpenSim.Services.FriendsService.dll" - -[Friends] - Connector = "OpenSim.Services.FriendsService.dll" - -[AgentPreferencesService] - LocalServiceModule = "OpenSim.Services.UserAccountService.dll:AgentPreferencesService" - -[LoginService] - LocalServiceModule = "OpenSim.Services.LLLoginService.dll:LLLoginService" - UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" - GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" - UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" - AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" - InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" - PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" - GridService = "OpenSim.Services.GridService.dll:GridService" - AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" - FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" - - ; This inventory service will be used to initialize the user's inventory - HGInventoryServicePlugin = "OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService" - HGInventoryServiceConstructorArg = "HGInventoryService" - -[MapImageService] - LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService" - -[GatekeeperService] - LocalServiceModule = "OpenSim.Services.HypergridService.dll:GatekeeperService" - ;; for the service - UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" - GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" - UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" - PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" - GridService = "OpenSim.Services.GridService.dll:GridService" - AuthenticationService = "OpenSim.Services.Connectors.dll:AuthenticationServicesConnector" - SimulationService ="OpenSim.Services.Connectors.dll:SimulationServiceConnector" - -[UserAgentService] - LocalServiceModule = "OpenSim.Services.HypergridService.dll:UserAgentService" - ;; for the service - GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" - GridService = "OpenSim.Services.GridService.dll:GridService" - GatekeeperService = "OpenSim.Services.HypergridService.dll:GatekeeperService" - PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" - FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" - UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" - - ;; This switch creates the minimum set of body parts and avatar entries for a viewer 2 to show a default "Ruth" avatar rather than a cloud. - CreateDefaultAvatarEntries = true - -;; The interface that local users get when they are in other grids -;; This greatly restricts the inventory operations while in other grids -[HGInventoryService] - ; For the InventoryServiceInConnector - LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService" - ;; alternatives: - ;; HG1.5, more permissive, not recommended, but still supported - ;LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInventoryService" - ;; HG1.0, totally permissive, not recommended, but OK for grids with 100% trust - ;LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService" - - UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService" - AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" - -;; The interface that local users get when they are in other grids -;; This restricts/filters the asset operations from the outside -[HGAssetService] - LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGAssetService" - UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService" - -[HGFriendsService] - LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGFriendsService" - UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" - FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" - UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" - GridService = "OpenSim.Services.GridService.dll:GridService" - PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" - -[HGInstantMessageService] - LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInstantMessageService" - GridService = "OpenSim.Services.GridService.dll:GridService" - PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" - UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" - InGatekeeper = True - -[MuteListService] - LocalServiceModule = "OpenSim.Services.MuteListService.dll:MuteListService" - -;; This should always be the very last thing on this file -[Includes] - Include-Common = "config-include/StandaloneCommon.ini" diff --git a/image-opensim-herbal3d/config/config-basilalpha/docker-compose-external-config.yml b/image-opensim-herbal3d/config/config-basilalpha/docker-compose-external-config.yml deleted file mode 100644 index d6861e5..0000000 --- a/image-opensim-herbal3d/config/config-basilalpha/docker-compose-external-config.yml +++ /dev/null @@ -1,30 +0,0 @@ - -version: '3' - -services: - - opensim: - image: opensim-herbal3d - - environment: - CONFIG_NAME: - CONFIGKEY: - EXTERNAL_HOSTNAME: - - network_mode: "host" - - volumes: - # overlay the OpenSimulator bin/config/ with external config/ - - ./config:/home/opensim/opensim/bin/config - # Loden generated asset directory tree is stored externally - - /home/basil/LodenAssets:/home/opensim/opensim/bin/LodenAssets - # Linkage for local mysqld - - /var/run/mysqld:/var/run/mysqld - - ports: - - 8002:8002/tcp - - 9000:9000/tcp - - 9050:9050/udp - - 9051:9051/tcp - - restart: unless-stopped diff --git a/image-opensim-herbal3d/config/config-basilalpha/official-osgrid-files/FlotsamCache.ini.txt b/image-opensim-herbal3d/config/config-basilalpha/official-osgrid-files/FlotsamCache.ini.txt deleted file mode 100644 index 77aa4aa..0000000 --- a/image-opensim-herbal3d/config/config-basilalpha/official-osgrid-files/FlotsamCache.ini.txt +++ /dev/null @@ -1,97 +0,0 @@ -[AssetCache] - ;; - ;; Options for FlotsamAssetCache - ;; - - ; cache directory can be shared by multiple instances - CacheDirectory = ./assetcache - ; Other examples: - ;CacheDirectory = /directory/writable/by/OpenSim/instance - - ; Log level - ; 0 - (Error) Errors only - ; 1 - (Info) Hit Rate Stats + Level 0 - ; 2 - (Debug) Cache Activity (Reads/Writes) + Level 1 - ; - LogLevel = 0 - - ; How often should hit rates be displayed (given in AssetRequests) - ; 0 to disable - HitRateDisplay = 100 - - ; Set to false for no memory cache - ; assets can be requested several times in short periods - ; so even a small memory cache is useful - MemoryCacheEnabled = false - - ; If a memory cache hit happens, or the asset is still in memory - ; due to other causes, update the timestamp on the disk file anyway. - ; Don't turn this on unless you share your asset cache between simulators - ; AND use an external process, e.g. cron job, to clean it up. - UpdateFileTimeOnCacheHit = false - - ; Enabling this will cache negative fetches. If an asset is negative-cached - ; it will not be re-requested from the asset server again for a while. - ; Generally, this is a good thing. - ; - ; Regular expiration settings (non-sliding) mean that the asset will be - ; retried after the time has expired. Sliding expiration means that - ; the time the negative cache will keep the asset is refreshed each - ; time a fetch is attempted. Use sliding expiration if you have rogue - ; scripts hammering the asset server with requests for nonexistent - ; assets. - ; - ; There are two cases where negative caching may cause issues: - ; - ; 1 - If an invalid asset is repeatedly requested by a script and that asset is - ; subsequently created, it will not be seen until fcache clear - ; is used. This is a very theoretical scenario since UUID collisions - ; are deemed to be not occuring in practice. - ; This can only become an issue with sliding expiration time. - ; - ; 2 - If the asset service is clustered, an asset may not have propagated - ; to all cluster members when it is first attempted to fetch it. - ; This may theoretically occur with networked vendor systems and - ; would lead to an asset not found message. However, after the - ; expiration time has elapsed, the asset will then be fetchable. - ; - ; The defaults below are suitable for all small to medium installations - ; including grids. - NegativeCacheEnabled = true - NegativeCacheTimeout = 120 - NegativeCacheSliding = false - - ; Set to false for no file cache - FileCacheEnabled = true - - ; How long {in hours} to keep assets cached in memory, .5 == 30 minutes - ; even a few minutes may mean many assets loaded to memory, if not all. - ; this is good if memory is not a problem. - ; if memory is a problem then a few seconds may actually save same. - ; see hit rates with console comand: fcache status - MemoryCacheTimeout = .016 ; one minute - - ; How long {in hours} to keep assets cached on disk, .5 == 30 minutes - ; Specify 0 if you do not want your disk cache to expire - FileCacheTimeout = 48 - - ; How often {in hours} should the disk be checked for expired files - ; Specify 0 to disable expiration checking - FileCleanupTimer = 1.0 ; disabled - - ; If WAIT_ON_INPROGRESS_REQUESTS has been defined then this specifies how - ; long (in miliseconds) to block a request thread while trying to complete - ; an existing write to disk. - ; NOTE: THIS PARAMETER IS NOT CURRENTLY USED BY THE CACHE - ; WaitOnInprogressTimeout = 3000 - - ; Number of tiers to use for cache directories (current valid - ; range 1 to 3) - ;CacheDirectoryTiers = 1 - - ; Number of letters per path tier, 1 will create 16 directories - ; per tier, 2 - 256, 3 - 4096 and 4 - 65K - ;CacheDirectoryTierLength = 3 - - ; Warning level for cache directory size - ;CacheWarnAt = 30000 diff --git a/image-opensim-herbal3d/config/config-basilalpha/official-osgrid-files/GridCommon.ini.txt b/image-opensim-herbal3d/config/config-basilalpha/official-osgrid-files/GridCommon.ini.txt deleted file mode 100644 index e9f63a0..0000000 --- a/image-opensim-herbal3d/config/config-basilalpha/official-osgrid-files/GridCommon.ini.txt +++ /dev/null @@ -1,226 +0,0 @@ -; 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 - ;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 variables in this section only if you are in - ; 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 = "http://hg.osgrid.org:80" - - ;# {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 - ;; This is a default that can be overwritten in some sections. - GatekeeperURI = "http://hg.osgrid.org:80" - GatekeeperURIAlias = "login.osgrid.org , users.osgrid.org" - -[Modules] - ;; Choose one cache module and the corresponding config file, if it exists. - ;; Copy the config .example file into your own .ini file and adapt that. - ;; We recommend the use of the FlotsamAssetCache since this is most actively maintained. - - AssetCaching = "FlotsamAssetCache" - Include-FlotsamCache = "config-include/FlotsamCache.ini" - - ;AssetCaching = "CenomeMemoryAssetCache" - ;Include-CenomeCache = "config-include/CenomeCache.ini" - - ;AssetCaching = "GlynnTuckerAssetCache" - - ;; 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" - - ;;OpenSimSearch module - SearchModule = "BasicSearchModule" - -[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 = "http://assets.osgrid.org" - -[InventoryService] - ; - ; Change this to your grid-wide inventory server - ; - InventoryServerURI = "http://inventory.osgrid.org" - ;MaxRetries = 0 - -[GridInfo] - ; - ; Change this to your grid info service - ; - GridInfoURI = "http://hg.osgrid.org:80" - -[GridService] - ; - ; Change this to your grid-wide grid server - ; - GridServerURI = "http://grid.osgrid.org" - 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="http://hg.osgrid.org:80" - -[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 = "http://hg.osgrid.org:80" - -[AvatarService] - ; - ; Change this to your grid-wide grid server - ; - AvatarServerURI = "http://avatar.osgrid.org" - -[AgentPreferencesService] - ; - ; Change this to your grid-wide avatar prefs server - ; - AgentPreferencesServerURI = "http://presence.osgrid.org" - -[PresenceService] - ; - ; Change this to your grid-wide presence server - ; - PresenceServerURI = "http://presence.osgrid.org" - -[UserAccountService] - ; - ; Change this to your grid-wide user accounts server - ; - UserAccountServerURI = "http://users.osgrid.org" - -[GridUserService] - ; - ; Change this to your grid-wide user accounts server - ; - GridUserServerURI = "http://users.osgrid.org" - -[AuthenticationService] - ; - ; Change this to your grid-wide authentication server - ; - AuthenticationServerURI = "http://login.osgrid.org" - -[FriendsService] - ; - ; Change this to your grid-wide friends server - ; - FriendsServerURI = "http://friends.osgrid.org" - -[HGInventoryAccessModule] - ; - ; === HG ONLY === - ; Change this to your server - ; accessible from other grids - ; - HomeURI = "http://hg.osgrid.org:80" - Gatekeeper = "http://hg.osgrid.org:80" - ;; 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 = false - - -[HGAssetService] - ; - ; === HG ONLY === - ; Change this to your server - ; accessible from other grids - ; - HomeURI = "http://hg.osgrid.org:80" - - ;; 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; - -[UserAgentService] - ; - ; === HG ONLY === - ; Change this to your user agent server (HG robust) - ; - UserAgentServerURI = "http://hg.osgrid.org:80" - -[MapImageService] - MapImageServerURI = "http://maptiles.osgrid.org:80" - -[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" - diff --git a/image-opensim-herbal3d/config/config-basilalpha/official-osgrid-files/OpenSim.ini.txt b/image-opensim-herbal3d/config/config-basilalpha/official-osgrid-files/OpenSim.ini.txt deleted file mode 100644 index 134f7c9..0000000 --- a/image-opensim-herbal3d/config/config-basilalpha/official-osgrid-files/OpenSim.ini.txt +++ /dev/null @@ -1,1225 +0,0 @@ -;; This is the main configuration file for OpenSimulator. -;; If it's named OpenSim.ini then it will be loaded by OpenSimulator. -;; If it's named OpenSim.ini.example then you will need to copy it to -;; OpenSim.ini first (if that file does not already exist) -;; -;; The settings in this file are in the form " = ". For example, -;; save_crashes = false in the [Startup] section below. -;; -;; All settings are initially commented out and the default value used, as -;; found in OpenSimDefaults.ini. To change a setting, first uncomment it by -;; deleting the initial semicolon (;) and then change the value. This will -;; override the value in OpenSimDefaults.ini -;; -;; If you want to find out what configuration OpenSimulator has finished with -;; once all the configuration files are loaded then type "config show" on the -;; region console command line. -;; -;; -;; NOTES FOR DEVELOPERS REGARDING THE FORMAT OF THIS FILE -;; -;; All leading white space is ignored, but preserved. -;; -;; Double semicolons denote a text comment -;; -;; ;# denotes a configuration directive description -;; formatted as: -;; {option} {depends on} {question to ask} {choices} default value -;; Any text comments following the declaration, up to the next blank line. -;; will be copied to the generated file (NOTE: generation is not yet -;; implemented) -;; -;; A * in the choices list will allow an empty entry. -;; An empty question will set the default if the dependencies are -;; satisfied. -;; -;; ; denotes a commented out option. -;; Any options added to OpenSim.ini.example should be initially commented -;; out. - -[Startup] - ;# {ConsolePrompt} {} {ConsolePrompt} {} "Region (\R) " - ;; Console prompt - ;; Certain special characters can be used to customize the prompt - ;; Currently, these are - ;; \R - substitute region name - ;; \\ - substitute \ - ; ConsolePrompt = "Region (\R) " - - ;# {ConsoleHistoryFileEnabled} {} {Save console commands to a history file?} {true false} true - ;; Console commands can be saved to a file, so the command history persists after a restart. (default is false) - ; ConsoleHistoryFileEnabled = true - - ;# {ConsoleHistoryFile} {} {Filename in which to save history} {} OpenSimConsoleHistory.txt - ;; The history file can be just a filename (relative to OpenSim's bin/ directory - ;; or it can be a full path to somewhere else. (default is OpenSimConsoleHistory.txt in bin/) - ; ConsoleHistoryFile = "OpenSimConsoleHistory.txt" - - ;# {ConsoleHistoryFileLines} {} {How many lines of history to save?} {} 100 - ;; How many lines of command history should we keep? (default is 100) - ; ConsoleHistoryFileLines = 100 - - ;# {ConsoleHistoryTimeStamp} {} {Time stamp commands in history file} {} false - ;; Time stamp commands in history file (default false) - ; ConsoleHistoryTimeStamp = false - - ;# {save_crashes} {} {Save crashes to disk?} {true false} false - ;; Set this to true if you want to log crashes to disk - ;; this can be useful when submitting bug reports. - ;; However, this will only log crashes within OpenSimulator that cause the - ;; entire program to exit - ;; It will not log crashes caused by virtual machine failures, which - ;; includes mono and ODE failures. - ;; You will need to capture these native stack traces by recording the - ;; session log itself. - ; save_crashes = false - - ;# {crash_dir} {save_crashes:true} {Directory to save crashes to?} {} crashes - ;; Directory to save crashes to if above is enabled - ;; (default is /opensimdir/crashes/*.txt or C:\opensim\crashes\*.txt) - ; crash_dir = "crashes" - - ;# {PIDFile} {} {Path to PID file?} {} - ;; Place to create a PID file - ; PIDFile = "/tmp/OpenSim.exe.pid" - - ;# {RegistryLocation} {} {Addins Registry Location} {} - ; Set path to directory for addin registry if you want addins outside of bin. - ; Information about the registered repositories and installed plugins will - ; be stored here. The OpenSim.exe process must have R/W access to the location. - ; RegistryLocation = "." - - ;# {ConfigDirectory} {} {Set path to directory for modular ini files} {} - ; Used by region module addins. You can set this to outside bin, so that addin - ; configurations will survive updates. The OpenSim.exe process must have R/W access - ; to the location. - ; ConfigDirectory = "." - - ; Sets the method that OpenSim will use to fire asynchronous - ; events. Valid values are , - ; QueueUserWorkItem, SmartThreadPool, and Thread. (QueueUserWorkItem replaces the UnsafeQueueUserWorkItem) - async_call_method = SmartThreadPool - - - ; Max threads to allocate on the FireAndForget thread pool - ; when running with the SmartThreadPool option above - MaxPoolThreads = 300 - MinPoolThreads = 32 - - ;# {region_info_source} {} {Where to load region from?} {filesystem web} filesystem - ;; Determine where OpenSimulator looks for the files which tell it - ;; which regions to server - ;; Default is "filesystem" - ; region_info_source = "filesystem" - ; region_info_source = "web" - - ;# {regionload_regionsdir} {region_info_source} {Location of file?} {} Regions - ;; Determines where the region XML files are stored if you are loading - ;; these from the filesystem. - ;; Defaults to bin/Regions in your OpenSimulator installation directory - ; regionload_regionsdir="C:\somewhere\xmlfiles\" - - ;# {regionload_webserver_url} {region_info_source} {URL to load region from?} {} - ;; Determines the page from which regions xml is retrieved if you are - ;; loading these from the web. - ;; The XML here has the same format as it does on the filesystem - ;; (including the tag), except that everything is also enclosed - ;; in a tag. - ; regionload_webserver_url = "http://example.com/regions.xml" - - ;# {allow_regionless} {} {Allow simulator to start up with no regions configured.} {true false} false - ;; Allow the simulator to start up if there are no region configuration available - ;; from the selected region_info_source. - ; allow_regionless = false - - ;# {NonPhysicalPrimMin} {} {Minimum size of nonphysical prims?} {} 0.001 - ;; Minimum size for non-physical prims. Affects resizing of existing - ;; prims. This can be overridden in the region config file (as - ;; NonPhysicalPrimMin!). - ; NonPhysicalPrimMin = 0.001 - - ;# {NonPhysicalPrimMax} {} {Maximum size of nonphysical prims?} {} 256 - ;; Maximum size for non-physical prims. Affects resizing of existing - ;; prims. This can be overridden in the region config file (as - ;; NonPhysicalPrimMax!). - ; NonPhysicalPrimMax = 256 - - ;# {PhysicalPrimMin} {} {Minimum size of physical prims?} {} 0.01 - ;; Minimum size where a prim can be physical. Affects resizing of - ;; existing prims. This can be overridden in the region config file. - ; PhysicalPrimMin = 0.01 - - ;# {PhysicalPrimMax} {} {Maximum size of physical prims?} {} 64 - ;; Maximum size where a prim can be physical. Affects resizing of - ;; existing prims. This can be overridden in the region config file. - ; PhysicalPrimMax = 64 - - ;# {ClampPrimSize} {} {Clamp viewer rezzed prims to max sizes?} {true false} false - ;; If a viewer attempts to rez a prim larger than the non-physical or - ;; physical prim max, clamp the dimensions to the appropriate maximum - ;; This can be overridden in the region config file. - ; ClampPrimSize = false - - ;# {LinksetPrims} {} {Max prims an object will hold?} {} 0 - ;; Maximum number of prims allowable in a linkset. Affects creating new - ;; linksets. Ignored if less than or equal to zero. - ;; This can be overridden in the region config file. - ; LinksetPrims = 0 - - ;# {AllowScriptCrossing} {} {Allow scripts to cross into this region} {true false} true - ;; Allow scripts to keep running when they cross region boundaries, rather - ;; than being restarted. State is reloaded on the destination region. - ;; This only applies when crossing to a region running in a different - ;; simulator. - ;; For crossings where the regions are on the same simulator the script is - ;; always kept running. - ; AllowScriptCrossing = true - - ;# {TrustBinaries} {AllowScriptCrossing:true} {Accept compiled binary script code? (DANGEROUS!)} {true false} false - ;; Allow compiled script binary code to cross region boundaries. - ;; If you set this to "true", any region that can teleport to you can - ;; inject ARBITRARY BINARY CODE into your system. Use at your own risk. - ;; YOU HAVE BEEN WARNED!!! - ; TrustBinaries = false - - ;# {InworldRestartShutsDown} {} {Shutdown instance on region restart?} {true false} false - ;; If you have only one region in an instance, or to avoid the many bugs - ;; that you can trigger in modules by restarting a region, set this to - ;; true to make the entire instance exit instead of restarting the region. - ;; This is meant to be used on systems where some external system like - ;; Monit will restart any instance that exits, thereby making the shutdown - ;; into a restart. - ; InworldRestartShutsDown = false - - ;; Persistence of changed objects happens during regular sweeps. The - ;; following control that behaviour to prevent frequently changing objects - ;; from heavily loading the region data store. - ;; If both of these values are set to zero then persistence of all changed - ;; objects will happen on every sweep. - - ;# {MinimumTimeBeforePersistenceConsidered} {} {Time before un-changed object may be persisted} {} 60 - ;; Objects will be considered for persistance in the next sweep when they - ;; have not changed for this number of seconds. - ; MinimumTimeBeforePersistenceConsidered = 60 - - ;# {MaximumTimeBeforePersistenceConsidered} {} {Time before changed objects may be persisted?} {} 600 - ;; Objects will always be considered for persistance in the next sweep - ;; if the first change occurred this number of seconds ago. - ; MaximumTimeBeforePersistenceConsidered = 600 - - ;# {physical_prim} {} {Allow prims to be physical?} {true false} true - ;; if you would like to allow prims to be physical and move by physics - ;; with the physical checkbox in the client set this to true. - ; physical_prim = true - - ;; Select a mesher here. - ;; - ;; Meshmerizer properly handles complex prims by using triangle meshes. - ;; Note that only the ODE physics engine currently deals with meshed - ;; prims in a satisfactory way. - - ;# {meshing} {} {Select mesher} {Meshmerizer ZeroMesher} Meshmerizer - ;; ZeroMesher is faster but leaves the physics engine to model the mesh - ;; using the basic shapes that it supports. - ;; Usually this is only a box. - ;; Default is Meshmerizer - ; meshing = Meshmerizer - ; meshing = ZeroMesher - ;; select ubODEMeshmerizer only with ubOde physics engine - ; meshing = ubODEMeshmerizer - - ; if you use Meshmerizer and want sculpt map collisions, setting this to - ; to true will store decoded sculpt maps in a special folder in your bin - ; folder, which can reduce startup times by reducing asset requests. Some - ; versions of mono dont work well when reading the cache files, so set this - ; to false if you have compatibility problems. - CacheSculptMaps = false - - ;; Choose one of the physics engines below - ;# {physics} {} {Select physics engine} {OpenDynamicsEngine BulletSim basicphysics POS} BulletSim - ;; BulletSim is the default physics engine. It provides the best performance and most functionality. - ;; BulletSim supports varregions. - ;; OpenDynamicsEngine was the previous default physics engine in OpenSimulator 0.7.6.1 and before. - ;; It continues to provide a workable physics implementation. It does not currently support varregions. - ;; basicphysics effectively does not model physics at all, making all objects phantom. - ;; Default is BulletSim - ; physics = OpenDynamicsEngine - ; physics = BulletSim - ; physics = basicphysics - ; physics = POS - ;; alternative OpenDynamicsEngine engine. ubODEMeshmerizer meshing above MUST be selected also - ; physics = ubODE - - ; ubODE and OpenDynamicsEngine does allocate a lot of memory on stack. On linux you may need to increase its limit - ; script opensim-ode-sh starts opensim setting that limit. You may need to increase it even more on large regions - ; edit the line ulimit -s 262144, and change this last value - - ;# {DefaultScriptEngine} {} {Default script engine} {YEngine} YEngine - ;; Default script engine to use (Yengine if all commented) - ; DefaultScriptEngine = "XEngine" - ;; see section [YEngine} below - DefaultScriptEngine = "YEngine" - - ;# {HttpProxy} {} {Proxy URL for llHTTPRequest and dynamic texture loading} {} http://proxy.com:8080 - ;; Http proxy setting for llHTTPRequest and dynamic texture loading, if - ;; required - ; HttpProxy = "http://proxy.com:8080" - - ;# {HttpProxyExceptions} {HttpProxy} {Set of regular expressions defining URL that should not be proxied} {} - ;; If you're using HttpProxy, then you can set HttpProxyExceptions to a - ;; list of regular expressions for URLs that you don't want to go through - ;; the proxy. - ;; For example, servers inside your firewall. - ;; Separate patterns with a ';' - ; HttpProxyExceptions = ".mydomain.com;localhost" - - ;# {SpawnPointRouting} {} {Set routing method for Telehub Spawnpoints} {closest random sequence} closest - ;; SpawnPointRouting adjusts the landing for incoming avatars. - ;; "closest" will place the avatar at the SpawnPoint located in the closest - ;; available spot to the destination (typically map click/landmark). - ;; "random" will place the avatar on a randomly selected spawnpoint. - ;; "sequence" will place the avatar on the next sequential SpawnPoint. - ; SpawnPointRouting = closest - - ;# {TelehubAllowLandmark} {} {Allow users with landmarks to override telehub routing} {true false} false - ;; TelehubAllowLandmark allows users with landmarks to override telehub - ;; routing and land at the landmark coordinates when set to true - ;; default is false - ; TelehubAllowLandmark = false - - ;; SSL certificate validation options - ;; you can allow selfsigned certificates or no official CA with next option set to true - ;# {NoVerifyCertChain} {} {do not verify SSL Cert Chain} {true false} true - ; NoVerifyCertChain = true - - ;; you can also bypass the hostname or domain verification - ;# {NoVerifyCertHostname} {} {do not verify SSL Cert name versus peer name} {true false} true - ; NoVerifyCertHostname = true - ;; having both options true does provide encryption but with low security - ;; set both true if you don't care to use SSL, they are needed to contact regions or grids that do use it. - -[AccessControl] - ;# {AllowedClients} {} {Bar (|) separated list of allowed clients} {} - ;; Bar (|) separated list of viewers which may gain access to the regions. - ;; One can use a substring of the viewer name to enable only certain - ;; versions - ;; Example: Agent uses the viewer "Imprudence 1.3.2.0" - ;; - "Imprudence" has access - ;; - "Imprudence 1.3" has access - ;; - "Imprudence 1.3.1" has no access - ; AllowedClients = "" - - ;# {DeniedClients} {} {Bar (|) separated list of denied clients} {} - ;; Bar (|) separated list of viewers which may not gain access to the regions. - ;; One can use a Substring of the viewer name to disable only certain - ;; versions - ;; Example: Agent uses the viewer "Imprudence 1.3.2.0" - ;; - "Imprudence" has no access - ;; - "Imprudence 1.3" has no access - ;; - "Imprudence 1.3.1" has access - ;; - ; DeniedClients = "" - - -[Map] - ;# {GenerateMaptiles} {} {Generate map tiles?} {true false} true - ;; Map tile options. - ;; If true, then maptiles are generated using the MapImageModule below. - ;; If false then the texture referenced by MaptileStaticUUID is used instead, which can also be overridden - ;; in individual region config file(s). If you do not want to upload map tiles at all, then you will need - ;; both to set this to false and comment out the [Modules] MapImageServiceModule setting in config-include/ - ; GenerateMaptiles = true - - ;# {MapImageModule} {} {The map image module to use} {MapImageModule Warp3DImageModule} MapImageModule - ;; The module to use in order to generate map images. - ;; MapImageModule is the default. Warp3DImageModule is an alternative experimental module that can - ;; generate better images. - ;MapImageModule = "MapImageModule" - - ;# {MaptileRefresh} {GenerateMaptiles} {Maptile refresh period?} {} 0 - ;; If desired, a running region can update the map tiles periodically - ;; to reflect building activity. This names no sense of you don't have - ;; prims on maptiles. Value is in seconds. - ; MaptileRefresh = 0 - - ;# {MaptileStaticUUID} {} {Asset ID for static map texture} {} 00000000-0000-0000-0000-000000000000 - ;; If not generating maptiles, use this static texture asset ID - ;; This may be overridden on a per region basis in Regions.ini - ; MaptileStaticUUID = "00000000-0000-0000-0000-000000000000" - - ;# {TextureOnMapTile} {} {Use terrain textures for map tiles?} {true false} true - ;; Use terrain texture for maptiles if true, use shaded green if false - ; TextureOnMapTile = true - - ;# {DrawPrimOnMapTile} {} {Draw prim shapes on map tiles?} {true false} false - ;; Draw objects on maptile. This step might take a long time if you've - ;; got a large number of objects, so you can turn it off here if you'd like. - ; DrawPrimOnMapTile = true - - ;# {TexturePrims} {} {Texture prims on map tiles?} {true false} true - ;; Texture the faces of the prims that are rendered on the map tiles. - ; TexturePrims = true - - ;# {TexturePrimSize} {} {Size of prims to texture faces?} {} 48 - ;; Only texture prims that have a diagonal size greater than this number - ; TexturePrimSize = 48 - - ;# {RenderMeshes} {} {Render meshes and sculpties on map tiles?} {true false} false - ;; Attempt to render meshes and sculpties on the map. - ; RenderMeshes = false - - ;# {MapColorWater} {} {Water color for textured and shaded maps} {"#1D475F"} - ; MapColorWater = "#3399FF" - - ;# {MapColor1} {} {Terrain color 1 for textured maps} {"#A58976"} - ; MapColor1 = "#A58976" - - ;# {MapColor2} {} {Terrain color 2 for textured maps} {"#455931"} - ; MapColor2 = "#455931" - - ;# {MapColor3} {} {Terrain color 3 for textured maps} {"#A29A8D"} - ; MapColor3 = "#A29A8D" - - ;# {MapColor4} {} {Terrain color 4 for textured maps} {"#C8C8C8"} - ; MapColor4 = "#C8C8C8" - - -[Permissions] - ;# {permissionmodules} {} {Permission modules to use (may specify multiple modules, separated by comma} {} DefaultPermissionsModule - ;; Permission modules to use, separated by comma. - ;; Possible modules are DefaultPermissionsModule, PrimLimitsModule - ; permissionmodules = DefaultPermissionsModule - - ;# {serverside_object_permissions} {permissionmodules:DefaultPermissionsModule} {Activate permission handling by the sim?} {true false} true - ;; These are the parameters for the default permissions module - ;; - ;; If set to false, then, in theory, the server never carries out - ;; permission checks (allowing anybody to copy - ;; any item, etc. This may not yet be implemented uniformally. - ;; If set to true, then all permissions checks are carried out - ; serverside_object_permissions = true - - ; if next 2 are false, several admin powers are only active if god powers requested on viewer - ; this reduces mistakes - ; set both to true to enable previous behaviour - automatic_gods = false - implicit_gods = false - - ;# {allow_grid_gods} {} {Allow grid gods?} {true false} false - ;; This allows users with a UserLevel of 200 or more to assume god - ;; powers in the regions in this simulator. - ;; if you don't trust grid admins, what are you doing there? - allow_grid_gods = true - - ;; This allows some control over permissions - ;; please note that this still doesn't duplicate SL, and is not intended to - ;# {region_owner_is_god} {} {Allow region owner gods} {true false} true - ;; Allow region owners to assume god powers in their regions - ; region_owner_is_god = true - - ;# {region_manager_is_god} {} {Allow region manager gods} {true false} false - ;; Allow region managers to assume god powers in regions they manage - ; region_manager_is_god = false - - ;# {simple_build_permissions} {} {Allow building in parcel by access list (no groups)} {true false} false - ;; More control over permissions - ;; This is definitely not SL! - ;; Provides a simple control for land owners to give build rights to - ;; specific avatars in publicly accessible parcels that disallow object - ;; creation in general. - ;; Owners specific avatars by adding them to the Access List of the parcel - ;; without having to use the Groups feature - ; simple_build_permissions = false - - - -[Estates] - ; If these values are commented out then the user will be asked for estate details when required (this is the normal case). - ; If these values are uncommented then they will be used to create a default estate as necessary. - ; New regions will be automatically assigned to that default estate. - - ;# {DefaultEstateName} {} {Default name for estate?} {} My Estate - ;; Name for the default estate - ; DefaultEstateName = My Estate - - ;# {DefaultEstateOwnerName} {} {Default estate owner name?} {} FirstName LastName - ;; Name for default estate owner - ; DefaultEstateOwnerName = FirstName LastName - - - ; ** Standalone Estate Settings ** - ; The following parameters will only be used on a standalone system to - ; create an estate owner that does not already exist - - ;# {DefaultEstateOwnerUUID} {} {Default estate owner UUID?} {} 00000000-0000-0000-0000-000000000000 - ;; If DefaultEstateOwnerUUID is left at UUID.Zero (as below) then a random - ;; UUID will be assigned. This is normally what you want - ; DefaultEstateOwnerUUID = 00000000-0000-0000-0000-000000000000 - - ;# {DefaultEstateOwnerEMail} {} {Default estate owner email?} {} - ;; Email address for the default estate owner - ; DefaultEstateOwnerEMail = owner@domain.com - - ;# {DefaultEstateOwnerPassword} {} {Default estate owner password} {} - ;; Password for the default estate owner - ; DefaultEstateOwnerPassword = password - -[SMTP] - ;; The SMTP server enabled the email module to send email to external - ;; destinations. - - ;# {enabled} {[Startup]emailmodule:DefaultEmailModule} {Enable SMTP service?} {true false} false - ;; Enable sending email via SMTP - ; enabled = false - - ;# {internal_object_host} {[Startup]emailmodule:DefaultEmailModule enabled:true} {Host name to treat as internal (object to object) email?} {} lsl.opensim.local - ; internal_object_host = lsl.opensim.local - - ;# {host_domain_header_from} {[Startup]emailmodule:DefaultEmailModule enabled:true} {From address to use in the sent email header?} {} 127.0.0.1 - ; host_domain_header_from = "127.0.0.1" - - ;# {email_pause_time} {[Startup]emailmodule:DefaultEmailModule enabled:true} {Period in seconds to delay after an email is sent.} {} 20 - ; email_pause_time = 20 - - ;# {email_max_size} {[Startup]emailmodule:DefaultEmailModule enabled:true} {Maximum total size of email in bytes.} {} 4096 - ; email_max_size = 4096 - - ;# {SMTP_SERVER_HOSTNAME} {[Startup]emailmodule:DefaultEmailModule enabled:true} {SMTP server name?} {} 127.0.0.1 - ; SMTP_SERVER_HOSTNAME = "127.0.0.1" - - ;# {SMTP_SERVER_PORT} {[Startup]emailmodule:DefaultEmailModule enabled:true} {SMTP server name?} {SMTP server port?} {} 25 - ; SMTP_SERVER_PORT = 25 - - ;# {SMTP_SERVER_LOGIN} {[Startup]emailmodule:DefaultEmailModule enabled:true} {SMTP server user name?} {} - ; SMTP_SERVER_LOGIN = "" - - ;# {SMTP_SERVER_PASSWORD} {[Startup]emailmodule:DefaultEmailModule enabled:true} {SMTP server password} {} - ; SMTP_SERVER_PASSWORD = "" - -[Network] - ;# {ConsoleUser} {} {User name for console account} {} - ;; Configure the remote console user here. This will not actually be used - ;; unless you use -console=rest at startup. - ; ConsoleUser = "Test" - ;# {ConsolePass} {} {Password for console account} {} - ; ConsolePass = "secret" - ;# {console_port} {} {Port for console connections} {} 0 - ; console_port = 0 - - ;# {http_listener_port} {} {TCP Port for this simulator to listen on? (This must be unique to the simulator!)} {} 9000 - ;; Simulator HTTP port. This is not the region port, but the port the - ;; entire simulator listens on. This port uses the TCP protocol, while - ;; the region ports use UDP. - ; http_listener_port = 9000 - - ; optional main server secure http (ssl) - ; to use ssl you need a ssl certificate in PKCS12 format that validates the ExternalHostnames - ; or their domains - ; some viewers by default only accept certificates signed by a oficial CA - ; to use others like self signed certificates with those viewers, - ; their debug option NoVerifySSLCert needs to be set true, You need to inform users about this - ; the main unsecure port will still open for some services. this may change in future. - - ; set http_listener_ssl to enable main server ssl. it will replace unsecure port on most functions - ;# {http_listener_ssl}{} {enable main server ssl port)} {} false - ;http_listener_ssl = false - - ; Set port for main SSL connections - ;# {http_listener_sslport}{} {main server ssl port)} {} 9001 - ;http_listener_sslport = 9001 ; - - ; currently if using ssl, regions ExternalHostName must the the same and equal to http_listener_cn - ; this may be removed in future - ;# {http_listener_cn}{} {main server ssl externalHostName)} {} "" - ;http_listener_cn = "myRegionsExternalHostName" - - ; the path for the certificate path - ;# {http_listener_cert_path}{} {main server ssl certificate file path)} {} "" - ;http_listener_cert_path = "mycert.p12" - - ;# {http_listener_cert_pass}{} {main server ssl certificate password)} {} "" - ;http_listener_cert_pass = "mycertpass" ; the cert passwork - - ; By default, OpenSimulator does not allow scripts to make HTTP calls to addresses on the simulator's LAN. - ; See the OutboundDisallowForUserScripts parameter in OpenSimDefaults.ini for more information on this filter. - ; If you need to allow scripts to make some LAN calls use the OutboundDisallowForUserScriptsExcept parameter below. - ; We recommend that you do not override OutboundDisallowForUserScripts directly unless you are very sure about what you're doing. - ; this HTTP calls can also use ssl see opensimDefaults.ini - ; - ; You can whitelist individual endpoints by IP or FQDN, e.g. - ; - ; OutboundDisallowForUserScriptsExcept = 192.168.1.3:8003 - ; - ; You can specify multiple addresses by separating them with a bar. For example, - ; - ; OutboundDisallowForUserScriptsExcept = 192.168.1.3:8003|myinternalserver:8000 - ; - ; If an address if given without a port number then port 80 is assumed - ; - ; You can also specify a network range in CIDR notation to whitelist, e.g. - ; - ; OutboundDisallowForUserScriptsExcept = 192.168.1.0/24 - ; - ; to whitelist all ports on addresses 192.168.1.0 to 192.168.1.255 - ; To specify an individual IP address use the /32 netmask - ; - ; OutboundDisallowForUserScriptsExcept = 192.168.1.2/32 - ; - ; See http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation for more information on CIDR notation - - ;# {HttpBodyMaxLenMAX} {} {Maximum bytes allowed for HTTP_BODY_MAXLENGTH} {} 16384 - ;; By default, llHTTPRequest limits the response body to 2048 bytes. - ;; This limit can be extended using HTTP_BODY_MAXLENGTH to a maximum - ;; of HttpBodyMaxLenMAX bytes. - ;; Please be aware that the limit can be set to insanely high values, - ;; effectively removing any limitation. This will expose your sim to a - ;; known attack. It is not recommended to set this limit higher than - ;; the highest value that is actually needed by existing applications! - ;; 16384 is the SL compatible value. - ; HttpBodyMaxLenMAX=16384 - - ;# {ExternalHostNameForLSL} {} {Hostname to use for HTTP-IN URLs. This should be reachable from the internet.} {} - ;; Hostname to use in llRequestURL/llRequestSecureURL - ;; if not defined - llRequestURL/llRequestSecureURL are disabled - ; UNCOMMENT AND SET THIS TO YOUR EXTERNAL OR LOCAL ADDRESS TO ENABLE AS NEEDED - ;ExternalHostNameForLSL = 127.0.0.1 - - ;# {shard} {} {Name to use for X-Secondlife-Shard header? (press enter if unsure)} {} OpenSim - ;; What is reported as the "X-Secondlife-Shard" - ;; Defaults to the user server url if not set - ;; The old default is "OpenSim", set here for compatibility - ;; The below is not commented for compatibility. - shard = "OpenSim" - - ;# {user_agent} {} {User agent to report to web servers?} {} OpenSim LSL (Mozilla Compatible) - ;; What is reported as the "User-Agent" when using llHTTPRequest - ;; Defaults to not sent if not set here. See the notes section in the wiki - ;; at http://wiki.secondlife.com/wiki/LlHTTPRequest for comments on adding - ;; " (Mozilla Compatible)" to the text where there are problems with a - ;; web server - ; user_agent = "OpenSim LSL (Mozilla Compatible)" - - ;; The following 3 variables are for HTTP Basic Authentication for the Robust services. - ;; Use this if your central services in port 8003 need to be accessible on the Internet - ;; but you want to protect them from unauthorized access. The username and password - ;; here need to match the ones in the Robust service configuration. - ; AuthType = "BasicHttpAuthentication" - ; HttpAuthUsername = "some_username" - ; HttpAuthPassword = "some_password" - ;; - ;; Any of these 3 variables above can be overriden in any of the service sections. - - -[XMLRPC] - ;# {XmlRpcRouterModule} {} {Module used to route incoming llRemoteData calls} {XmlRpcRouterModule XmlRpcGridRouterModule} XmlRpcRouterModule - ;; If enabled and set to XmlRpcRouterModule, this will post an event, - ;; "xmlrpc_uri(string)" to the script concurrently with the first - ;; remote_data event. This will contain the fully qualified URI an - ;; external site needs to use to send XMLRPC requests to that script - ;; - ;; If enabled and set to XmlRpcGridRouterModule, newly created channels - ;; will be registered with an external service via a configured uri - ;XmlRpcRouterModule = "XmlRpcRouterModule" - - ;# {XmlRpcPort} {} {Port for incoming llRemoteData xmlrpc calls} {} 20800 - ;XmlRpcPort = 20800 - - ;# {XmlRpcHubURI} {XmlRpcRouterModule} {URI for external service used to register xmlrpc channels created in the simulator. This depends on XmlRpcRouterModule being set to XmlRpcGridRouterModule} {} http://example.com - ;; If XmlRpcRouterModule is set to XmlRpcGridRouterModule, the simulator - ;; will use this address to register xmlrpc channels on the external - ;; service - ; XmlRpcHubURI = http://example.com - - -[ClientStack.LindenUDP] - ;; See OpensSimDefaults.ini for the throttle options. You can copy the - ;; relevant sections and override them here. - ;; DO NOT MODIFY OpenSimDefaults.ini, as your changes would be lost - ;; with the next update! - - ;# {DisableFacelights} {} {Stop facelights from working?} {true false} false - ;; Quash and remove any light properties from attachments not on the - ;; hands. This allows flashlights and lanterns to function, but kills - ;; silly vanity "Facelights" dead. Sorry, head mounted miner's lamps - ;; will also be affected. - ;; This is especially important in artistic builds that depend on lights - ;; on the build for their appearance, since facelights will cause the - ;; building's lights to possibly not be rendered. - ; DisableFacelights = "false" - - -[ClientStack.LindenCaps] - ;; For the long list of capabilities, see OpenSimDefaults.ini - ;; Here are the few ones you may want to change. Possible values - ;; are: - ;; "" -- empty, capability disabled - ;; "localhost" -- capability enabled and served by the simulator - ;; "" -- capability enabled and served by some other server - ;; - ; These are enabled by default to localhost. Change if you see fit. - Cap_GetTexture = "localhost" - Cap_GetMesh = "localhost" - Cap_AvatarPickerSearch = "localhost" - Cap_GetDisplayNames = "localhost" - - -[SimulatorFeatures] - ;# {SearchServerURI} {} {URL of the search server} {} - ;; Optional. If given this serves the same purpose as the grid wide - ;; [LoginServices] SearchURL setting and will override that where - ;; supported by viewers. - ;SearchServerURI = "http://127.0.0.1:9000/" - - ;# {DestinationGuideURI} {} {URL of the destination guide} {} - ;; Optional. If given this serves the same purpose as the grid wide - ;; [LoginServices] DestinationGuide setting and will override that where - ;; supported by viewers. - ;DestinationGuideURI = "http://127.0.0.1:9000/guide" - - ;# {MapTileURL} {} {URL of maptile server} {} - MapTileURL = "http://maptiles.osgrid.org:80" - - -[Chat] - ;# {whisper_distance} {} {Distance at which a whisper is heard, in meters?} {} 10 - ;; Distance in meters that whispers should travel. - ; whisper_distance = 10 - - ;# {say_distance} {} {Distance at which normal chat is heard, in meters?} {} 20 - ;; Distance in meters that ordinary chat should travel. - ; say_distance = 20 - - ;# {shout_distance} {} {Distance at which a shout is heard, in meters?} {} 100 - ;; Distance in meters that shouts should travel. - ; shout_distance = 100 - - -[EntityTransfer] - ;# {DisableInterRegionTeleportCancellation} {} {Determine whether the cancel button is shown at all during teleports.} {false true} false - ;; This option exists because cancelling at certain points can result in an unuseable session (frozen avatar, etc.) - ;; Disabling cancellation can be okay in small closed grids where all teleports are highly likely to suceed. - ;DisableInterRegionTeleportCancellation = false - - ;# {LandingPointBehavior} {} {How to honor landing points and telehubs for gods.} {LandingPointBehavior_OS LandingPointBehavior_SL} LandingPointBehavior_OS - ;; This option exists to control the behavior of teleporting gods into places that have landing points - ;; and telehubs. Historically, there has been a difference: OpenSim (OS) has honored landing points and telehubs even for - ;; avatars with god permissions; SL lets gods land wherever they want. - ;LandingPointBehavior = LandingPointBehavior_OS - -[Messaging] - ;# {OfflineMessageModule} {} {Module to use for offline message storage} {OfflineMessageModule "Offline Message Module V2" *} - ;; Module to handle offline messaging. The core module requires an external - ;; web service to do this. See OpenSim wiki. - OfflineMessageModule = OfflineMessageModule - - ;# {OfflineMessageURL} {OfflineMessageModule:OfflineMessageModule Offline Message Module V2:Offline Message Module V2} {URL of offline messaging service} {} - ;; URL of web service for offline message storage. Leave it commented if your service is local to the sim. - OfflineMessageURL = http://im.osgrid.org/offline - - - ;# {StorageProvider} {Offline Message Module V2:Offline Message Module V2} {DLL that provides the storage interface} {OpenSim.Data.MySQL.dll} - ;; For standalones, this is the storage dll. - ; StorageProvider = OpenSim.Data.MySQL.dll - - ; Mute list handler - ; the provided MuteListModule is just a Dummy - ; you will need a external module for proper suport. - ; if you keep both 2 following settings comment, viewers will use mutes in their caches - ; if you uncoment both (url is ignored) the mutes will be deleted at login on this instance regions - ; WARNING: viewers mutes cache seems to shared by all grids, including SL - ; this may cause some confusion. - - ;# {MuteListModule} {OfflineMessageModule:OfflineMessageModule} {} {} MuteListModule - ;; Mute list handler (Requires OpenSimMuteList module). MUST BE SET to allow offline - ;; messages to work - MuteListModule = OpenSimMuteList - - ;# {MuteListURL} {MuteListModule:MuteListModule} {} {} http://yourserver/Mute.php - MuteListURL = http://im.osgrid.org/mute/index.php - - ;; Control whether group invites and notices are stored for offline users. - ;; Default is true. - ;; This applies to both core groups module. - ForwardOfflineGroupMessages = false - - -[BulletSim] - ;# {AvatarToAvatarCollisionsByDefault} {[Startup]physics:BulletSim} {Should avatars collide with each other?} {true false} true - AvatarToAvatarCollisionsByDefault = true - UseSeparatePhysicsThread = true - TerrainImplementation=0 - -[ODEPhysicsSettings] - ;# {mesh_sculpted_prim} {[Startup]physics:OpenDynamicsEngine} {Mesh sculpties so they collide as they look?} {true false} true - ;; Do we want to mesh sculpted prim to collide like they look? - ;; If you are seeing sculpt texture decode problems - ;; (messages such as "Decoded image with unhandled number of components: 0 shortly followed by a physcs exception") - ;; then you might want to try setting this to false. - ; mesh_sculpted_prim = true - -[RemoteAdmin] - ;; This is the remote admin module, which uses XMLRPC requests to - ;; manage regions from a web interface. - - ;# {enabled} {} {Enable the remote admin interface?} {true false} false - ; enabled = false - - ;# {port} {enabled:true} {Port to use for the remote admin interface? (0 = default)} {} 0 - ;; Set this to a nonzero value to have remote admin use a different port - ; port = 0 - - ;# {access_password} {enabled:true} {Password for the remote admin interface} {} - ;; This password is required to make any XMLRPC call (should be set as - ;; the "password" parameter) - ; access_password = "" - - ;# {access_ip_addresses} {enabled:true} {List the IP addresses allowed to call RemoteAdmin?} {} - ;; List the IP addresses allowed to call RemoteAdmin - ;; If access_ip_addresses isn't set, then all IP addresses can access RemoteAdmin. - ;; access_ip_addresses = 0.0.0.0, 0.0.0.0 ... - ; access_ip_addresses = - - ;# {create_region_enable_voice} {enabled:true} {Enable voice for newly created regions?} {true false} false - ;; set this variable to true if you want the create_region XmlRpc - ;; call to unconditionally enable voice on all parcels for a newly - ;; created region - ; create_region_enable_voice = false - - ;# {create_region_public} {enabled:true} {Make newly created regions public?} {true false} false - ;; set this variable to false if you want the create_region XmlRpc - ;; call to create all regions as private per default (can be - ;; overridden in the XmlRpc call) - ; create_region_public = false - - ;# {enabled_methods} {enabled:true} {List of methods to allow, separated by |} {} all - ;; enable only those methods you deem to be appropriate using a | delimited - ;; whitelist. - ;; For example: - ;; enabled_methods = admin_broadcast|admin_save_oar|admin_save_xml - ;; if this parameter is not specified but enabled = true, all methods - ;; will be available - ; enabled_methods = all - - ;; specify the default appearance for an avatar created through the remote - ;; admin interface - ;; This will only take effect is the file specified by the - ;; default_appearance setting below exists - ; default_male = Default Male - ; default_female = Default Female - - ;; Update appearance copies inventory items and wearables of default - ;; avatars. if this value is false, just worn assets are copied to the - ;; Clothes folder; if true, all Clothes and Bodyparts subfolders are copied. - ;; The receiver will wear the same items the default avatar did wear. - ; copy_folders = false - - ;; Path to default appearance XML file that specifies the look of the - ;; default avatars - ; default_appearance = default_appearance.xml - - -[Wind] - ;# {enabled} {} {Enable wind module?} {true false} true - ;; Enables the wind module. - ; enabled = true - - ;# {wind_update_rate} {enabled:true} {Wind update rate in frames?} {} 150 - ;; How often should wind be updated, as a function of world frames. - ;; Approximately 50 frames a second - ; wind_update_rate = 150 - - ;; The Default Wind Plugin to load - ; wind_plugin = SimpleRandomWind - - ;; These settings are specific to the ConfigurableWind plugin - ;; To use ConfigurableWind as the default, simply change wind_plugin - ;; to ConfigurableWind and uncomment the following. - ; avg_strength = 5.0 - ; avg_direction = 0.0 - ; var_strength = 5.0 - ; var_direction = 30.0 - ; rate_change = 1.0 - - ;# {strength} {enabled:true wind_plugin:SimpleRandomWind} {Wind strength?} {} 1.0 - ;; This setting is specific to the SimpleRandomWind plugin - ;; Adjusts wind strength. 0.0 = no wind, 1.0 = normal wind. - ; strength = 1.0 - -[Materials] - ;# {enable_materials} {} {Enable Materials support?} {true false} true - ;; This enables the use of Materials. - ; enable_materials = true - ; MaxMaterialsPerTransaction = 50 - -[DataSnapshot] - ;# {index_sims} {} {Enable data snapshotting (search)?} {true false} false - ;; The following set of configs pertains to search. - ;; Set index_sims to true to enable search engines to index your - ;; searchable data. - ;; If false, no data will be exposed, DataSnapshot module will be off, - ;; and you can ignore the rest of these search-related configs. - index_sims = true - - ;# {data_exposure} {index_sims:true} {How much data should be exposed?} {minimum all} minimum - ;; The variable data_exposure controls what the regions expose: - ;; minimum: exposes only things explicitly marked for search - ;; all: exposes everything - data_exposure = minimum - - ;# {gridname} {index_sims:true} {Enter the name fo your grid} {} OSGrid - ;; If search is on, change this to your grid name; will be ignored for - ;; standalones - gridname = "OSGrid" - - ;# {default_snapshot_period} {index_sims:true} {Period between data snapshots?} {} 1200 - ;; Period between data snapshots, in seconds. 20 minutes, for starters, - ;; so that you see the initial changes fast. - ;; Later, you may want to increase this to 3600 (1 hour) or more - ; default_snapshot_period = 1200 - - ;; This will be created in bin, if it doesn't exist already. It will hold - ;; the data snapshots. - ; snapshot_cache_directory = "DataSnapshot" - - ;; [Supported, but obsolete] - ;# {data_services} {index_sims:true} {Data service URLs to register with?} {} http://metaverseink.com/cgi-bin/register.py - ; This semicolon-separated string serves to notify specific data services - ; about the existence of this sim. Uncomment if you want to index your - ; data with this and/or other search providers. - data_services="http://search.osgrid.org/register.php" - - ;; New way of specifying data services, one per service - ;DATA_SRV_MISearch = "http://metaverseink.com/cgi-bin/register.py" - -[Search] - Module = "OpenSimSearch" - SearchURL = http://search.osgrid.org/query.php - -[Economy] - ; the economy module in use - ; To use other modules you need to override this setting - ; economymodule = BetaGridLikeMoneyModule - - ;# {SellEnabled} {} {Enable selling for 0?} {true false} true - ; The default economy module only implements just enough to allow free actions (transfer of objects, etc). - ; There is no intention to implement anything further in core OpenSimulator. - ; This functionality has to be provided by third party modules. - - AllowFreeTestUpload = true - - ;; Enables selling things for $0. Default is true. - ; SellEnabled = true - - ;# {PriceUpload} {} {Price for uploading?} {} 0 - ;; Money Unit fee to upload textures, animations etc. Default is 0. - ; PriceUpload = 0 - - ;# {PriceGroupCreate} {} {Fee for group creation} {} 0 - ;; Money Unit fee to create groups. Default is 0. - ; PriceGroupCreate = 0 - - MeshModelAllowTextureToInventory = true - - economy = http://helper.osgrid.org/ - -[YEngine] - ;; This should have better compatibility with SL scripts. - ;; implements non preemptive microthreading, so fixing problems like llSleep or long events handlers - ;; but those will suffer from timeslicing, so will be slower. - ;; compiles LSL directly to IL, so only suports LSL scripting (no C# etc) - ;; shares the Xengine APIs like LSL, OSSL, etc. - ;; TPs or crossings to/from Xengine will full recompile scripts losing state. - ;; attachment scripts may misbehave, cars will stop on crossings, etc. - Enabled = true - ScriptStackSize = 256 - ScriptHeapSize = 256 - UseSourceHashCode = true - MinTimerInterval = 0.1 - ;; Default is ./bin/ScriptEngines - ScriptEnginesPath="ScriptEngines" - -[XEngine] - ;# {Enabled} {} {Enable the XEngine scripting engine?} {true false} true - ;; Enable this engine in this OpenSim instance - Enabled = false - - ;; How many threads to keep alive even if nothing is happening - ; MinThreads = 2 - - ;; How many threads to start at maximum load - ; MaxThreads = 100 - - ;; Time a thread must be idle (in seconds) before it dies - ; IdleTimeout = 60 - - ;; llSetTimerEvent minimum value. Default 0.5s, 0.05s whould be more resonable - ; MinTimerInterval = 0.5 - - ;# {Priority} {Enabled:true} {Priority for script engine threads?} {Lowest BelowNormal Normal AboveNormal Highest} BelowNormal - ;; Thread priority ("Lowest", "BelowNormal", "Normal", "AboveNormal", - ;; "Highest") - ; Priority = "BelowNormal" - - ;; Maximum number of events to queue for a script (excluding timers) - ; MaxScriptEventQueue = 300 - - ;; Stack size per script engine thread in bytes. - ;; If you are experiencing StackOverflowExceptions you may want to increase this (e.g. double it). - ;; The trade-off may be increased memory usage by the script engine. - ; ThreadStackSize = 262144 - - ;; Set this to true to load each script into a separate - ;; AppDomain. - ;; - ;; Setting this to false will load all script assemblies into the - ;; current AppDomain, which will significantly improve script loading times. - ;; It will also reduce initial per-script memory overhead. - ;; - ;; However, setting this to false will also prevent script DLLs from being unloaded from memory if the script is deleted. - ;; This may cause an OutOfMemory problem over time when avatars with scripted attachments move in and out of the region. - ;; at this time some mono versions seem to have problems with the true option - ;; so default is now false until a fix is found, to simply life of less technical skilled users. - ;; this should only be a issue if regions stay alive for a long time with lots of scripts added or edited. - AppDomainLoading = false - - ;; Controls whether scripts are stopped by aborting their threads externally (abort) or by co-operative checks from the compiled script (co-op) - ;; co-op will be more stable but this option is currently experimental. - ;; If moving from co-op to abort, existing script DLLs will need to be recompiled. - ;; This currently can only be done manually, either by setting DeleteScriptsOnStartup = true for one run - ;; or by deleting the script DLL* files in bin/ScriptEngines// - ;; One can move from co-op back to abort without recompilation, but reverting back to co-op again will need script recompile - ;; Current valid values are "abort" and "co-op" - ; ScriptStopStrategy = co-op - - - ;# {DeleteScriptsOnStartup} {} {Delete previously compiled script DLLs on startup?} {true false} true - ;; Controls whether previously compiled scripts DLLs are deleted on sim restart. If you set this to false - ;; then startup will be considerably faster since scripts won't need to be recompiled. However, then it becomes your responsibility to delete the - ;; compiled scripts if you're recompiling OpenSim from source code and internal interfaces used - ;; by scripts have changed. - ; DeleteScriptsOnStartup = true - - ;# {CompactMemOnLoad} {} {compacts memory on each script load at startup?} {true false} false - ;; forces calls to memory garbage collector before loading each script DLL during region startup. - ;; Peak memory usage is reduced and region starts with a more compacted memory allocation. - ;; But this costs a lot of time, so region load will take a lot longer. - ;; it is more usefull if there are no previously compiled scripts DLLs (as with DeleteScriptsOnStartup = true) - ;CompactMemOnLoad = false - - ;; Compile debug info (line numbers) into the script assemblies - ; CompileWithDebugInformation = true - - ; ==== Settings for MOD and OSSL functions have been moved to the [OSSL] section - - ;# {EventLimit} {} {Amount of time a script can spend in an event handler} {} 30 - ;; Time a script can spend in an event handler before it is interrupted - ; EventLimit = 30 - - ;# {KillTimedOutScripts} {} {Kill script in case of event time overruns?} {true false} false - ;; If a script overruns it's event limit, kill the script? - ; KillTimedOutScripts = false - - ;# {ScriptDelayFactor} {} {Multiplier for scripting delays} {} 1.0 - ;; Sets the multiplier for the scripting delays - ; ScriptDelayFactor = 1.0 - - ;# {ScriptDistanceLimitFactor} {} {Multiplier for 10.0m distance limits?} {} - ;; The factor the 10 m distances limits are multiplied by - ; ScriptDistanceLimitFactor = 1.0 - - ;# {NotecardLineReadCharsMax} {} {Maximum length of notecard line?} {} 255 - ;; Maximum length of notecard line read - ;; Increasing this to large values potentially opens - ;; up the system to malicious scripters - ; NotecardLineReadCharsMax = 255 - - ;# {SensorMaxRange} {} {Sensor range} {} 96.0 - ;; Sensor settings - ; SensorMaxRange = 96.0 - ;# {SensorMaxResults} {} {Max sensor results returned?} {} - ; SensorMaxResults = 16 - - ;# {DisableUndergroundMovement} {} {Disable underground movement of prims} {true false} true - ;; Disable underground movement of prims (default true); set to - ;; false to allow script controlled underground positioning of - ;; prims - ; DisableUndergroundMovement = true - - ;# {ScriptEnginesPath} {} {Path to script assemblies} {} ScriptEngines - ;; Path to script engine assemblies - ;; Default is ./bin/ScriptEngines - ; ScriptEnginesPath = "ScriptEngines" - -[OSSL] - ;# {Include-osslEnable} {} {Include file for enabling and permissions for OSSL functions} {} - ;; Optionally include file to enable OSSL functions and set permissions on who can use which. - ;; If this INI file is not included, the OSSL functions are disabled. - Include-osslEnable = "config-include/osslDefaultEnable.ini" - - -[MRM] - ;; Enables the Mini Region Modules Script Engine. - ; Enabled = false - - ;; Runs MRM in a Security Sandbox - ;; WARNING: DISABLING IS A SECURITY RISK. - ; Sandboxed = true - - ;; The level sandbox to use, adjust at your OWN RISK. - ;; Valid values are: - ;; * FullTrust - ;; * SkipVerification - ;; * Execution - ;; * Nothing - ;; * LocalIntranet - ;; * Internet - ;; * Everything - ; SandboxLevel = "Internet" - - ;; Only allow Region Owners to run MRMs - ;; May represent a security risk if you disable this. - ; OwnerOnly = true - - -[FreeSwitchVoice] - ;; In order for this to work you need a functioning FreeSWITCH PBX set up. - ;; Configuration details at http://opensimulator.org/wiki/Freeswitch_Module - ; Enabled = false - - ;; You need to load a local service for a standalone, and a remote service - ;; for a grid region. Use one of the lines below, as appropriate - ;; If you're using Freeswitch on a standalone then you will also need to configure the [FreeswitchService] section in config-include/StandaloneCommon.ini - ; LocalServiceModule = OpenSim.Services.FreeswitchService.dll:FreeswitchService - ; LocalServiceModule = OpenSim.Services.Connectors.dll:RemoteFreeswitchConnector - - ;; If using a remote connector, specify the server URL - ; FreeswitchServiceURL = http://my.grid.server:8004/fsapi - - -[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 - - ;; Service connectors to the Groups Service. Select one depending on - ;; whether you're using a Flotsam XmlRpc backend or a SimianGrid backend - - ;# {ServicesConnectorModule} {Module:GroupsModule} {Service connector to use for groups?} {XmlRpcGroupsServicesConnector SimianGroupsServicesConnector} XmlRpcGroupsServicesConnector - ;; The service connector to use for the GroupsModule - ServicesConnectorModule = XmlRpcGroupsServicesConnector - - ;# {GroupsServerURI} {Module:GroupsModule} {Groups Server URI?} {} - ;; URI for the groups services - GroupsServerURI = "http://groups.osgrid.org/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 - - ;; Specify which messaging module to use for groups messaging and if it's - ;; enabled - MessagingModule = GroupsMessagingModule - MessagingEnabled = true - MessageOnlineUsersOnly = true - - ;; XmlRpc Security settings. These must match those set on your backend - ;; groups service. - ; XmlRpcServiceReadKey = 1234 - ; XmlRpcServiceWriteKey = 1234 - -[InterestManagement] - ;# {UpdatePrioritizationScheme} {} {Update prioritization scheme?} {BestAvatarResponsiveness Time Distance SimpleAngularDistance FrontBack} BestAvatarResponsiveness - ;; This section controls how state updates are prioritized for each client - ;; Valid values are BestAvatarResponsiveness, Time, Distance, - ;; SimpleAngularDistance, FrontBack - ; UpdatePrioritizationScheme = BestAvatarResponsiveness - - ; TEST OPTION KEEP AS FALSE - ; if true, don't send object updates if outside view range - ; ObjectsCullingByDistance = false - -[MediaOnAPrim] - ;# {Enabled} {} {Enable Media-on-a-Prim (MOAP)} {true false} true - ;; Enable media on a prim facilities - ; Enabled = true - - -[NPC] - ;# {Enabled} {} {Enable Non Player Character (NPC) facilities} {true false} false - Enabled = true - - ;; several options to control NPCs creation - - ;# {AllowNotOwned} {} {allow NPCs to be created not Owned} {true false} true - ;; allow NPCs to be created not Owned {true false} default: true - ; AllowNotOwned = true - - ;# {AllowSenseAsAvatar} {} {allow NPCs to set to be sensed as Avatars} {true false} true - ;; allow NPCs to set to be sensed as Avatars {true false} default: true - ; AllowSenseAsAvatar = true - - ;# {AllowCloneOtherAvatars} {} {allow NPCs to created cloning any avatar in region} {true false} true - ;; allow NPCs to created cloning any avatar in region {true false} default: true - ; AllowCloneOtherAvatars = true - - ;# {NoNPCGroup} {} {if true NPCs will have no group title, if false display "- NPC -"} {true false} true - ;; if true NPCs will have no group title, if false display "- NPC -" for easy identification {true false} default: true - ; NoNPCGroup = true - - -[Terrain] - ;# {InitialTerrain} {} {Initial terrain type} {pinhead-island flat} pinhead-island - ; InitialTerrain = "pinhead-island" - -[LandManagement] - ;; set this to false to not display parcel ban lines - ;ShowParcelBansLines = true - -[UserProfiles] - ;# {ProfileServiceURL} {} {Set url to UserProfilesService} {} - ;; Set the value of the url to your UserProfilesService - ;; If un-set / "" the module is disabled - ProfileServiceURL = http://services.osgrid.org - - ;# {AllowUserProfileWebURLs} {} {allow user profiles web urls} {true false} true - ;; set this to false to prevent your users to be sent to unknown - ;; web sites by other users on their profiles - ; AllowUserProfileWebURLs = false - -[XBakes] - ;# {URL} {} {Set URL for Baked texture service} {} - ;; Sets the URL for the baked texture ROBUST service. - ;; Disabled when unset. - ;; URL = ${Const|BaseURL}:${Const|PrivatePort} - URL = http://xbakes.osgrid.org - -[Architecture] - ;# {Include-Architecture} {} {Choose one of the following architectures} {config-include/Standalone.ini config-include/StandaloneHypergrid.ini config-include/Grid.ini config-include/GridHypergrid.ini config-include/SimianGrid.ini config-include/HyperSimianGrid.ini} config-include/Standalone.ini - ;; Uncomment one of the following includes as required. For instance, to create a standalone OpenSim, - ;; uncomment Include-Architecture = "config-include/Standalone.ini" - ;; - ;; Then you will need to copy and edit the corresponding *Common.example file in config-include/ - ;; that the referenced .ini file goes on to include. - ;; - ;; For instance, if you chose "config-include/Standalone.ini" then you will need to copy - ;; "config-include/StandaloneCommon.ini.example" to "config-include/StandaloneCommon.ini" before - ;; editing it to set the database and backend services that OpenSim will use. - ;; - ; Include-Architecture = "config-include/Standalone.ini" - ; Include-Architecture = "config-include/StandaloneHypergrid.ini" - ; Include-Architecture = "config-include/Grid.ini" - Include-Architecture = "config-include/GridHypergrid.ini" - ; Include-Architecture = "config-include/SimianGrid.ini" - ; Include-Architecture = "config-include/HyperSimianGrid.ini" diff --git a/image-opensim-herbal3d/config/config-standalone/Includes.ini b/image-opensim-herbal3d/config/config-standalone/Includes.ini deleted file mode 100755 index a42407f..0000000 --- a/image-opensim-herbal3d/config/config-standalone/Includes.ini +++ /dev/null @@ -1,24 +0,0 @@ -; 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/config-standalone/Regions" - -[Architecture] - Include-osslDefaultEnable = "config/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/config-standalone/config-include/osslEnable.ini" - Include-Architecture = "config/config-standalone/config-include/Standalone.ini" - ; 'Standalone.ini' is usually a copy of the default 'Standalone.ini.example' which - ; would include the now empty 'bin/config-include/StandaloneCommon.ini'. - ; The next line includes the 'StandaloneCommon.ini' from this configuration. - Include-Common = "config/config-standalone/config-include/StandaloneCommon.ini" - Include-Flotsam = "config/config-standalone/config-include/FlotsamCache.ini" - ; Last include so it overlays anything before. - ; Database is setup in this INI file as it has passwords, etc. - Include-MiscConfig = "config/config-standalone/misc.ini" diff --git a/image-opensim-herbal3d/config/config-standalone/Regions/Regions.ini b/image-opensim-herbal3d/config/config-standalone/Regions/Regions.ini deleted file mode 100755 index 865c3d0..0000000 --- a/image-opensim-herbal3d/config/config-standalone/Regions/Regions.ini +++ /dev/null @@ -1,12 +0,0 @@ -[Standalone] -RegionUUID = 6c428e83-1a1d-4927-b4a4-2cd13a55720e -Location = "1000,1000" -InternalAddress = "0.0.0.0" -InternalPort = 9050 -AllowAlternatePorts = False -ExternalHostName = "EXTERNAL_HOST_NAME" -NonphysicalPrimMax = 256 -PhysicalPrimMax = 200 -ClampPrimSize = False -MaxPrims = 60000 -MaxAgents = 100 diff --git a/image-opensim-herbal3d/config/config-standalone/config-include/Grid.ini b/image-opensim-herbal3d/config/config-standalone/config-include/Grid.ini deleted file mode 100644 index 9520b7c..0000000 --- a/image-opensim-herbal3d/config/config-standalone/config-include/Grid.ini +++ /dev/null @@ -1,63 +0,0 @@ -;; -;; 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/image-opensim-herbal3d/config/config-standalone/config-include/GridCommon.ini b/image-opensim-herbal3d/config/config-standalone/config-include/GridCommon.ini deleted file mode 100644 index 90eaab1..0000000 --- a/image-opensim-herbal3d/config/config-standalone/config-include/GridCommon.ini +++ /dev/null @@ -1,233 +0,0 @@ -; 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/image-opensim-herbal3d/config/config-standalone/config-include/GridHypergrid.ini b/image-opensim-herbal3d/config/config-standalone/config-include/GridHypergrid.ini deleted file mode 100644 index 5a48ac2..0000000 --- a/image-opensim-herbal3d/config/config-standalone/config-include/GridHypergrid.ini +++ /dev/null @@ -1,88 +0,0 @@ -;; -;; 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/image-opensim-herbal3d/config/config-standalone/config-include/Standalone.ini b/image-opensim-herbal3d/config/config-standalone/config-include/Standalone.ini deleted file mode 100644 index 3610f11..0000000 --- a/image-opensim-herbal3d/config/config-standalone/config-include/Standalone.ini +++ /dev/null @@ -1,124 +0,0 @@ -;; -;; Please don't change this file. -;; All optional settings are in StandaloneCommon.ini.example, -;; which you can copy and change. -;; - -[Modules] - AssetServices = "RegionAssetConnector" - InventoryServices = "LocalInventoryServicesConnector" - NeighbourServices = "NeighbourServicesOutConnector" - AuthenticationServices = "LocalAuthenticationServicesConnector" - AuthorizationServices = "LocalAuthorizationServicesConnector" - GridServices = "RegionGridServicesConnector" - PresenceServices = "LocalPresenceServicesConnector" - UserProfilesServices = "LocalUserProfilesServicesConnector" - UserAccountServices = "LocalUserAccountServicesConnector" - AgentPreferencesServices= "LocalAgentPreferencesServicesConnector" - GridUserServices = "LocalGridUserServicesConnector" - SimulationServices = "LocalSimulationConnectorModule" - AvatarServices = "LocalAvatarServicesConnector" - EntityTransferModule = "BasicEntityTransferModule" - InventoryAccessModule = "BasicInventoryAccessModule" - MapImageService = "MapImageServiceModule" - SearchModule = "BasicSearchModule" - MuteListService = "LocalMuteListServicesConnector" - - LibraryModule = true - LLLoginServiceInConnector = true - GridInfoServiceInConnector = true - MapImageServiceInConnector = true - -[SimulationDataStore] - LocalServiceModule = "OpenSim.Services.SimulationService.dll:SimulationDataService" - -[EstateDataStore] - LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService" - -[AssetService] - LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService" - ; For RegionAssetConnector - LocalGridAssetService = "OpenSim.Services.AssetService.dll:AssetService" - -[InventoryService] - LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService" - -[LibraryService] - LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService" - LibraryName = "OpenSim Library" - DefaultLibrary = "./inventory/Libraries.xml" - -[AvatarService] - LocalServiceModule = "OpenSim.Services.AvatarService.dll:AvatarService" - -[AuthenticationService] - LocalServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" - -[GridService] - LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" - Realm = "regions" - StorageProvider = "OpenSim.Data.Null.dll" - -[PresenceService] - LocalServiceModule = "OpenSim.Services.PresenceService.dll:PresenceService" - StorageProvider = "OpenSim.Data.Null.dll" - -[UserAccountService] - LocalServiceModule = "OpenSim.Services.UserAccountService.dll:UserAccountService" - - ;; These are for creating new accounts - AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" - GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" - GridService = "OpenSim.Services.GridService.dll:GridService" - InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" - AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" - - ;; This switch creates the minimum set of body parts and avatar entries for a viewer 2 to show a default "Ruth" avatar rather than a cloud. - CreateDefaultAvatarEntries = true - -[GridUserService] - LocalServiceModule = "OpenSim.Services.UserAccountService.dll:GridUserService" - -[FriendsService] - LocalServiceModule = "OpenSim.Services.FriendsService.dll" - -[Friends] - Connector = "OpenSim.Services.FriendsService.dll" - -[AgentPreferencesService] - LocalServiceModule = "OpenSim.Services.UserAccountService.dll:AgentPreferencesService" - -[LoginService] - LocalServiceModule = "OpenSim.Services.LLLoginService.dll:LLLoginService" - UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" - GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" - AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" - InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" - PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" - GridService = "OpenSim.Services.GridService.dll:GridService" - AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" - FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" - - WelcomeMessage = "Welcome, Avatar!" - - ;# {DSTZone} {} {Override Daylight Saving Time rules} {* none local} "America/Los_Angeles;Pacific Standard Time" - ;; Viewers do not receive timezone information from the server - almost all (?) default to Pacific Standard Time - ;; However, they do rely on the server to tell them whether it's Daylight Saving Time or not. - ;; Hence, calculating DST based on a different timezone can result in a misleading viewer display and inconsistencies between grids. - ;; By default, this setting uses various timezone names to calculate DST with regards to the viewer's standard PST. - ;; Options are - ;; "none" no DST - ;; "local" use the server's only timezone to calculate DST. This is previous OpenSimulator behaviour. - ;; "America/Los_Angeles;Pacific Standard Time" use these timezone names to look up Daylight savings. - ;; 'America/Los_Angeles' is used on Linux/Mac systems whilst 'Pacific Standard Time' is used on Windows - DSTZone = "America/Los_Angeles;Pacific Standard Time" - -[MapImageService] - LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService" - -[MuteListService] - LocalServiceModule = "OpenSim.Services.MuteListService.dll:MuteListService" - -;; This should always be the very last thing on this file -[Includes] - Include-Common = "config-include/StandaloneCommon.ini" diff --git a/image-opensim-herbal3d/config/config-standalone/config-include/StandaloneCommon.ini b/image-opensim-herbal3d/config/config-standalone/config-include/StandaloneCommon.ini deleted file mode 100644 index 517edd5..0000000 --- a/image-opensim-herbal3d/config/config-standalone/config-include/StandaloneCommon.ini +++ /dev/null @@ -1,400 +0,0 @@ -; This is the main configuration file for an instance of OpenSim running in standalone 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 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;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 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 - ;; 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] - ;; Asset cache module. - ;; Warning this is required for several region features - - AssetCaching = "FlotsamAssetCache" - Include-FlotsamCache = "config-include/FlotsamCache.ini" - - ;; Authorization is not on by default, as it depends on external php - ;AuthorizationServices = "LocalAuthorizationServicesConnector" - -[AssetService] - DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll" - AssetLoaderArgs = "assets/AssetSets.xml" - -[GridService] - ;; For in-memory region storage (default) - StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" - ;;--- For MySql region storage (alternative) - ;StorageProvider = "OpenSim.Data.MySQL.dll:MySqlRegionData" - - ;; Directory for map tile images of remote regions - ; MapTileDirectory = "./maptiles" - - ;; Next, we can specify properties of regions, including default and fallback regions - ;; The syntax is: Region_ = "" - ;; where can be DefaultRegion, FallbackRegion, NoDirectLogin, Persistent, LockedOut - ;; - ;; DefaultRegion If a local login cannot be placed in the required region (e.g. home region does not exist, avatar is not allowed entry, etc.) - ;; then this region becomes the destination. Only the first online default region will be used. If no DefaultHGRegion - ;; is specified then this will also be used as the region for hypergrid connections that require it (commonly because they have not specified - ;; an explicit region. - ;; - ;; DefaultHGRegion If an avatar connecting via the hypergrid does not specify a region, then they are placed here. Only the first online - ;; region will be used. - ;; - ;; FallbackRegion If the DefaultRegion is not available for a local login, then any FallbackRegions are tried instead. These are tried in the - ;; order specified. This only applies to local logins at this time, not Hypergrid connections. - ;; - ;; NoDirectLogin A hypergrid user cannot directly connect to this region. This does not apply to local logins. - ;; - ;; Persistent When the simulator is shutdown, the region is signalled as offline but left registered on the grid. - ;; - ;; For example: - Region_Welcome_Area = "DefaultRegion, DefaultHGRegion" - - ;; Allow supporting viewers to export content - ;; Set to false to prevent export - ExportSupported = true - - -[LibraryModule] - ; Set this if you want to change the name of the OpenSim Library - ;LibraryName = "My World's Library" - -[LoginService] - WelcomeMessage = "Welcome, Avatar!" - - SRV_HomeURI = "${Hypergrid|HomeURI}" - SRV_InventoryServerURI = "${Const|BaseURL}:${Const|PublicPort}" - SRV_AssetServerURI = "${Const|BaseURL}:${Const|PublicPort}" - SRV_ProfileServerURI = "${Const|BaseURL}:${Const|PublicPort}" - SRV_FriendsServerURI = "${Const|BaseURL}:${Const|PublicPort}" - SRV_IMServerURI = "${Const|BaseURL}:${Const|PublicPort}" - - ;; For Viewer 2 - MapTileURL = "${Const|BaseURL}:${Const|PublicPort}/" - - ; Url to search service - ; SearchURL = "${Const|BaseURL}:${Const|PublicPort}"; - - ; For V3 destination guide - ; DestinationGuide = "${Const|BaseURL}/guide" - - ; The minimum user level required for a user to be able to login. 0 by default - ; If you disable a particular user's account then you can set their login level below this number. - ; You can also change this level from the console though these changes will not be persisted. - ; MinLoginLevel = 0 - - ;; Ask co-operative viewers to use a different currency name - ;Currency = "" - - ;; 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. - ; DOSAllowXForwardedForHeader = false - - ;; 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 - ; DOSMaxRequestsInTimeFrame = 5 - ;; - ;; 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. - -[FreeswitchService] - ;; If FreeSWITCH is not being used then you don't need to set any of these parameters - ;; - ;; The IP address of your FreeSWITCH server. The common case is for this to be the same as the server running the OpenSim standalone - ;; This has to be set for the FreeSWITCH service to work - ;; This address must be reachable by viewers. - ;ServerAddress = 127.0.0.1 - - ;; The following configuration parameters are optional - - ;; By default, this is the same as the ServerAddress - ; Realm = 127.0.0.1 - - ;; By default, this is the same as the ServerAddress on port 5060 - ; SIPProxy = 127.0.0.1:5060 - - ;; Default is 5000ms - ; DefaultTimeout = 5000 - - ;; The dial plan context. Default is "default" - ; Context = default - - ;; Currently unused - ; UserName = freeswitch - - ;; Currently unused - ; Password = password - - ;; The following parameters are for STUN = Simple Traversal of UDP through NATs - ;; See http://wiki.freeswitch.org/wiki/NAT_Traversal - ;; stun.freeswitch.org is not guaranteed to be running so use it in - ;; production at your own risk - ; EchoServer = 127.0.0.1 - ; EchoPort = 50505 - ; AttemptSTUN = false - -[GridInfoService] - ; These settings are used to return information on a get_grid_info call. - ; Client launcher scripts and third-party clients make use of this to - ; autoconfigure the client and to provide a nice user experience. If you - ; want to facilitate that, you should configure the settings here according - ; to your grid or standalone setup. - ; - ; See http://opensimulator.org/wiki/GridInfo - - ; login uri: for grid this is the login server URI - login = ${Const|BaseURL}:${Const|PublicPort}/ - - ; long grid name: the long name of your grid - gridname = "the lost continent of hippo" - - ; short grid name: the short name of your grid - gridnick = "hippogrid" - - ; login page: optional: if it exists it will be used to tell the client to use - ; this as splash page. May also be served from an external web server, e.g. for - ; information on a standalone - ;welcome = ${Const|BaseURL}/welcome - - ; helper uri: optional: if it exists it will be used to tell the client to use - ; this for all economy related things - ;economy = ${Const|BaseURL}/economy - - ; web page of grid: optional: page providing further information about your grid - ;about = ${Const|BaseURL}/about - - ; account creation: optional: page providing further information about obtaining - ; a user account on your grid - ;register = ${Const|BaseURL}/register - - ; help: optional: page providing further assistance for users of your grid - ;help = ${Const|BaseURL}/help - - ; password help: optional: page providing password assistance for users of your grid - ;password = ${Const|BaseURL}/password - - ; HG address of the gatekeeper, if you have one - ; this is the entry point for all the regions of the world - ; gatekeeper = ${Const|BaseURL}:${Const|PublicPort}/ - - ; HG user domain, if you have one - ; 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" - -[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" - -;; -;; HG configurations -;; -[GatekeeperService] - ;; If you have GatekeeperURI set under [Hypergrid], no need to set it here, leave it commented - ; ExternalName = "${Const|BaseURL}:${Const|PublicPort}" - - ; Does this grid allow incoming links to any region in it? - ; If false, HG TPs happen only to the Default regions specified in [GridService] section - AllowTeleportsToAnyRegion = true - - ;; Regular expressions for controlling which client versions are accepted/denied. - ;; An empty string means nothing is checked. - ;; - ;; Example 1: allow only these 3 types of clients (any version of them) - ;; AllowedClients = "Imprudence|Hippo|Second Life" - ;; - ;; Example 2: allow all clients except these - ;; DeniedClients = "Twisted|Crawler|Cryolife|FuckLife|StreetLife|GreenLife|AntiLife|KORE-Phaze|Synlyfe|Purple Second Life|SecondLi |Emerald" - ;; - ;; Note that these are regular expressions, so every character counts. - ;; Also note that this is very weak security and should not be trusted as a reliable means - ;; for keeping bad clients out; modified clients can fake their identifiers. - ;; - ;; - ;AllowedClients = "" - ;DeniedClients = "" - - ;; Are foreign visitors allowed? - ;ForeignAgentsAllowed = true - ;; - ;; If ForeignAgentsAllowed is true, make exceptions using AllowExcept. - ;; Leave blank or commented for no exceptions. - ; AllowExcept = "http://griefer.com:8002, http://enemy.com:8002" - ;; - ;; If ForeignAgentsAllowed is false, make exceptions using DisallowExcept - ;; Leave blank or commented for no exceptions. - ; DisallowExcept = "http://myfriendgrid.com:8002, http://myboss.com:8002" - -[UserAgentService] - ;; User level required to be contacted from other grids - ;LevelOutsideContacts = 0 - - ;; Restrictions on destinations of local users. - ;; Are local users allowed to visit other grids? - ;; What user level? Use variables of this forrm: - ;; ForeignTripsAllowed_Level_ = true | false - ;; (the default is true) - ;; For example: - ; ForeignTripsAllowed_Level_0 = false - ; ForeignTripsAllowed_Level_200 = true ; true is default, no need to say it - ;; - ;; If ForeignTripsAllowed is false, make exceptions using DisallowExcept - ;; Leave blank or commented for no exceptions. - ; DisallowExcept_Level_0 = "http://myothergrid.com:8002, http://boss.com:8002" - ;; - ;; If ForeignTripsAllowed is true, make exceptions using AllowExcept. - ;; Leave blank or commented for no exceptions. - ; AllowExcept_Level_200 = "http://griefer.com:8002, http://enemy.com:8002" - - ;; This variable controls what is exposed to profiles of local users - ;; as seen from outside of this grid. Leave it uncommented for exposing - ;; UserTitle, UserFlags and the creation date. Uncomment and change to False - ;; to block this info from being exposed. - ; ShowUserDetailsInHGProfile = True - - -[HGAssetService] - ;; 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" - -[HGInventoryAccessModule] - ;; 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. - ; 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 - -[HGFriendsModule] - ; User level required to be able to send friendship invitations to foreign users - ;LevelHGFriends = 0; - -[Messaging] - - -[EntityTransfer] - ;; User level from which local users are allowed to HG teleport. Default 0 (all users) - ;LevelHGTeleport = 0 - - ;; Are local users restricted from taking their appearance abroad? - ;; Default is no restrictions - ;RestrictAppearanceAbroad = false - - ;; If appearance is restricted, which accounts' appearances are allowed to be exported? - ;; Comma-separated list of account names - AccountForAppearance = "Test User, Astronaut Smith" - -[UserProfilesService] - ;; To use, set Enabled to true then configure for your site... - Enabled = false - LocalServiceModule = "OpenSim.Services.UserProfilesService.dll:UserProfilesService" - - ;; Configure this for separate databse - ; ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;" - ; Realm = UserProfiles - - UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService - AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" diff --git a/image-opensim-herbal3d/config/config-standalone/config-include/StandaloneHypergrid.ini b/image-opensim-herbal3d/config/config-standalone/config-include/StandaloneHypergrid.ini deleted file mode 100644 index 6265bd0..0000000 --- a/image-opensim-herbal3d/config/config-standalone/config-include/StandaloneHypergrid.ini +++ /dev/null @@ -1,198 +0,0 @@ -;; -;; Please don't change this file. -;; All optional settings are in StandaloneCommon.ini.example, -;; which you can copy and change. -;; - -[Startup] - WorldMapModule = "HGWorldMap" - -[Modules] - AssetServices = "RegionAssetConnector" - InventoryServices = "HGInventoryBroker" - NeighbourServices = "NeighbourServicesOutConnector" - AuthenticationServices = "LocalAuthenticationServicesConnector" - AuthorizationServices = "LocalAuthorizationServicesConnector" - GridServices = "RegionGridServicesConnector" - PresenceServices = "LocalPresenceServicesConnector" - UserAccountServices = "LocalUserAccountServicesConnector" - AgentPreferencesServices= "LocalAgentPreferencesServicesConnector" - GridUserServices = "LocalGridUserServicesConnector" - SimulationServices = "RemoteSimulationConnectorModule" - AvatarServices = "LocalAvatarServicesConnector" - UserProfilesServices = "LocalUserProfilesServicesConnector" - MapImageService = "MapImageServiceModule" - EntityTransferModule = "HGEntityTransferModule" - InventoryAccessModule = "HGInventoryAccessModule" - FriendsModule = "HGFriendsModule" - UserManagementModule = "HGUserManagementModule" - SearchModule = "BasicSearchModule" - MuteListService = "LocalMuteListServicesConnector" - - InventoryServiceInConnector = true - AssetServiceInConnector = true - HypergridServiceInConnector = true - NeighbourServiceInConnector = true - LibraryModule = true - LLLoginServiceInConnector = true - GridInfoServiceInConnector = true - AuthenticationServiceInConnector = true - SimulationServiceInConnector = true - MapImageServiceInConnector = true - -[Messaging] - MessageTransferModule = HGMessageTransferModule - LureModule = HGLureModule - -[SimulationDataStore] - LocalServiceModule = "OpenSim.Services.SimulationService.dll:SimulationDataService" - -[EstateDataStore] - LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService" - -[AssetService] - LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService" - - ; For RegionAssetConnector - LocalGridAssetService = "OpenSim.Services.AssetService.dll:AssetService" - HypergridAssetService = "OpenSim.Services.Connectors.dll:HGAssetServiceConnector" - -[InventoryService] - ; For HGInventoryBroker - LocalGridInventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" - -[AvatarService] - LocalServiceModule = "OpenSim.Services.AvatarService.dll:AvatarService" - -[LibraryService] - LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService" - LibraryName = "OpenSim Library" - DefaultLibrary = "./inventory/Libraries.xml" - -[AuthenticationService] - LocalServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" - -[GridService] - LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" - Realm = "regions" - StorageProvider = "OpenSim.Data.Null.dll" - - ; Needed to display non-default map tile images for remote regions - AssetService = "OpenSim.Services.AssetService.dll:AssetService" - - HypergridLinker = true - AllowHypergridMapSearch = true - -[PresenceService] - LocalServiceModule = "OpenSim.Services.PresenceService.dll:PresenceService" - StorageProvider = "OpenSim.Data.Null.dll" - -[UserAccountService] - LocalServiceModule = "OpenSim.Services.UserAccountService.dll:UserAccountService" - - ;; These are for creating new accounts by the service - AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" - GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" - GridService = "OpenSim.Services.GridService.dll:GridService" - InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" - AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" - - ;; This switch creates the minimum set of body parts and avatar entries for a viewer 2 to show a default "Ruth" avatar rather than a cloud. - CreateDefaultAvatarEntries = true - -[GridUserService] - LocalServiceModule = "OpenSim.Services.UserAccountService.dll:GridUserService" - -[FriendsService] - LocalServiceModule = "OpenSim.Services.FriendsService.dll" - -[Friends] - Connector = "OpenSim.Services.FriendsService.dll" - -[AgentPreferencesService] - LocalServiceModule = "OpenSim.Services.UserAccountService.dll:AgentPreferencesService" - -[LoginService] - LocalServiceModule = "OpenSim.Services.LLLoginService.dll:LLLoginService" - UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" - GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" - UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" - AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" - InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" - PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" - GridService = "OpenSim.Services.GridService.dll:GridService" - AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" - FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" - - ; This inventory service will be used to initialize the user's inventory - HGInventoryServicePlugin = "OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService" - HGInventoryServiceConstructorArg = "HGInventoryService" - -[MapImageService] - LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService" - -[GatekeeperService] - LocalServiceModule = "OpenSim.Services.HypergridService.dll:GatekeeperService" - ;; for the service - UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" - GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" - UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" - PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" - GridService = "OpenSim.Services.GridService.dll:GridService" - AuthenticationService = "OpenSim.Services.Connectors.dll:AuthenticationServicesConnector" - SimulationService ="OpenSim.Services.Connectors.dll:SimulationServiceConnector" - -[UserAgentService] - LocalServiceModule = "OpenSim.Services.HypergridService.dll:UserAgentService" - ;; for the service - GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" - GridService = "OpenSim.Services.GridService.dll:GridService" - GatekeeperService = "OpenSim.Services.HypergridService.dll:GatekeeperService" - PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" - FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" - UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" - - ;; This switch creates the minimum set of body parts and avatar entries for a viewer 2 to show a default "Ruth" avatar rather than a cloud. - CreateDefaultAvatarEntries = true - -;; The interface that local users get when they are in other grids -;; This greatly restricts the inventory operations while in other grids -[HGInventoryService] - ; For the InventoryServiceInConnector - LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService" - ;; alternatives: - ;; HG1.5, more permissive, not recommended, but still supported - ;LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInventoryService" - ;; HG1.0, totally permissive, not recommended, but OK for grids with 100% trust - ;LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService" - - UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService" - AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" - -;; The interface that local users get when they are in other grids -;; This restricts/filters the asset operations from the outside -[HGAssetService] - LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGAssetService" - UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService" - -[HGFriendsService] - LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGFriendsService" - UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" - FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" - UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" - GridService = "OpenSim.Services.GridService.dll:GridService" - PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" - -[HGInstantMessageService] - LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInstantMessageService" - GridService = "OpenSim.Services.GridService.dll:GridService" - PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" - UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" - InGatekeeper = True - -[MuteListService] - LocalServiceModule = "OpenSim.Services.MuteListService.dll:MuteListService" - -;; This should always be the very last thing on this file -[Includes] - Include-Common = "config-include/StandaloneCommon.ini" diff --git a/image-opensim-herbal3d/config/config-standalone/docker-compose-external-config.yml b/image-opensim-herbal3d/config/config-standalone/docker-compose-external-config.yml deleted file mode 100644 index 12c9fb5..0000000 --- a/image-opensim-herbal3d/config/config-standalone/docker-compose-external-config.yml +++ /dev/null @@ -1,26 +0,0 @@ -version: '3' - -services: - opensim: - - image: opensim-herbal3d - - environment: - - CONFIGKEY - - CONFIG_NAME - - EXTERNAL_HOSTNAME - - # If the configuration is outside of the container - # volumes: - # - ./config:/home/opensim/opensim/bin/config - - ports: - - 8002:8002/tcp - - 8002:8002/udp - - 9000:9000/tcp - - 9000:9000/udp - - 9050:9050/tcp - - 9050:9050/udp - - 11440-11449:11440-11449 - - # restart: always diff --git a/image-opensim-herbal3d/config/config-standalone/docker-compose.yml b/image-opensim-herbal3d/config/config-standalone/docker-compose.yml deleted file mode 100644 index 12c9fb5..0000000 --- a/image-opensim-herbal3d/config/config-standalone/docker-compose.yml +++ /dev/null @@ -1,26 +0,0 @@ -version: '3' - -services: - opensim: - - image: opensim-herbal3d - - environment: - - CONFIGKEY - - CONFIG_NAME - - EXTERNAL_HOSTNAME - - # If the configuration is outside of the container - # volumes: - # - ./config:/home/opensim/opensim/bin/config - - ports: - - 8002:8002/tcp - - 8002:8002/udp - - 9000:9000/tcp - - 9000:9000/udp - - 9050:9050/tcp - - 9050:9050/udp - - 11440-11449:11440-11449 - - # restart: always diff --git a/image-opensim-herbal3d/config/os-config b/image-opensim-herbal3d/config/os-config deleted file mode 100644 index 80e70f6..0000000 --- a/image-opensim-herbal3d/config/os-config +++ /dev/null @@ -1,8 +0,0 @@ -# File of configuration parameters that are applied when OpenSimulator is run. - -# When run, the OpenSimulator selects one of the available runtime configurations. -# This is selected by CONFIG_NAME which is the name of a subdirectory under -# '/config/'. Thus, one OpenSImulator binary can have several runtime -# configurations (standalone, grid, ...). - -export CONFIG_NAME=${CONFIG_NAME:-standalone} diff --git a/image-opensim-herbal3d/config/scripts/linkInConfigs.sh b/image-opensim-herbal3d/config/scripts/linkInConfigs.sh deleted file mode 100755 index 8f6929e..0000000 --- a/image-opensim-herbal3d/config/scripts/linkInConfigs.sh +++ /dev/null @@ -1,14 +0,0 @@ -#! /bin/bash -# Script that copies the Includes.ini into the 'bin/config' dir so -# OpenSimulator finds our new configuration system. - -OPENSIMBIN=${OPENSIMBIN:-/home/opensim/opensim/bin} -OPENSIMCONFIG="$OPENSIMBIN/config" - -CONFIG_NAME=${CONFIG_NAME:-standalone} - -cd "$OPENSIMCONFIG" -if [[ ! -e "Includes.ini" ]] ; then - echo "opensim-docker: Copying Includes.ini into bin/config" - cp "config-${CONFIG_NAME}/Includes.ini" . -fi diff --git a/image-opensim-herbal3d/config/scripts/updateConfigFiles.sh b/image-opensim-herbal3d/config/scripts/updateConfigFiles.sh deleted file mode 100755 index c6c531f..0000000 --- a/image-opensim-herbal3d/config/scripts/updateConfigFiles.sh +++ /dev/null @@ -1,44 +0,0 @@ -#! /bin/bash -# Before running OpenSimulator, we update the configuration files -# for the current running environment. -# This is run before every OpenSimulator run to update changing parameters. - -OPENSIMBIN=${OPENSIMBIN:-/home/opensim/opensim/bin} - -# For this image, CONFIG_NAME is the configuration being used -CONFIG_NAME=${CONFIG_NAME:-standalone} -CONFIGDIR=${OPENSIMBIN}/config/config-${CONFIG_NAME} - -cd "$CONFIGDIR" -source ../scripts/setEnvironment.sh - -# Update EXTERNAL_HOSTNAME -cd "$OPENSIMBIN" -for file in $OPENSIMBIN/Regions/*.ini $CONFIGDIR/Regions/*.ini ; do - if [[ -e "$file" ]] ; then - echo "opensim-docker: updateConfigFiles.sh: fixing ExternalHostname in \"$file\"" - sed --in-place -e "s/^ExternalHostName = .*$/ExternalHostName = \"${EXTERNAL_HOSTNAME}\"/" "$file" - fi -done - -# Add EXTERNAL_HOSTNAME to the common configuation in OpenSim.ini -if [[ -e "$OPENSIMBIN/OpenSim.ini" ]] ; then - sed --in-place -e "s/^ *BaseHostname = .*$/ BaseHostname = ${EXTERNAL_HOSTNAME}/" "$OPENSIMBIN/OpenSim.ini" - echo "opensim-docker: updateConfigFiles.sh: fixing BaseHostname in OpenSim.ini" - grep " BaseHostname =" "$OPENSIMBIN/OpenSim.ini" -fi - -# If the environment variables haven't been copied into misc.ini, do it now -echo "opensim-docker: updateConfigFiles.sh: replacing vars in \"${CONFIGDIR}/misc.ini\"" -# If the replacement has already happened, this is a NOOP -sed \ - -e "s/MYSQL_DB_USER_PASSWORD/$MYSQL_DB_USER_PASSWORD/" \ - -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/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.ORIG" > "${CONFIGDIR}/misc.ini" - - diff --git a/image-opensim-herbal3d/config/setup.sh b/image-opensim-herbal3d/config/setup.sh deleted file mode 100755 index 09ed19a..0000000 --- a/image-opensim-herbal3d/config/setup.sh +++ /dev/null @@ -1,40 +0,0 @@ -#! /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 - -export OPENSIMBIN=${OPENSIMBIN:-/home/opensim/opensim/bin} -export CONFIGDIR=${CONFIGDIR:-$OPENSIMBIN/config} - -echo "opensim-docker: setup.sh: CONFIGDIR=\"${CONFIGDIR}\"" - -FIRSTTIMEFLAG=${CONFIGDIR}/.configFirstTime - -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 - echo "opensim-docker: setup.sh: first time" - cd "$CONFIGDIR" - # Do any database account and db creation - ./scripts/initializeDb.sh - 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" -./scripts/linkInConfigs.sh - -# 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/image-opensim-herbal3d/config/config-basilalpha/docker-compose.yml b/image-opensim-herbal3d/docker-compose.yml similarity index 63% rename from image-opensim-herbal3d/config/config-basilalpha/docker-compose.yml rename to image-opensim-herbal3d/docker-compose.yml index 4cf8fe4..90b37bc 100644 --- a/image-opensim-herbal3d/config/config-basilalpha/docker-compose.yml +++ b/image-opensim-herbal3d/docker-compose.yml @@ -1,14 +1,17 @@ version: '3' -services: +networks: + localnet: + driver: bridge +services: dbservice: - # MySql version 8 requires a bunch of new security stuff. Stay with v5. - # image: mysql:5 + # Use MariaDB image: mariadb:latest environment: MYSQL_ROOT_PASSWORD: + MARIADB_ROOT_PASSWORD: # Parameters added to invocation. # Default is to flush after every operation which slows Docker image down. # This flushes log once a second. @@ -17,30 +20,26 @@ services: # NOTE: you must create this directory before starting the simulator # This mysql data directory can be placed anywhere - ~/opensim-sql-data:/var/lib/mysql - restart: unless-stopped + networks: + - localnet + # restart: always opensim: depends_on: - dbservice image: opensim-herbal3d - environment: - CONFIG_NAME: - CONFIGKEY: - EXTERNAL_HOSTNAME: - - # If the configuration is outside the container. + OS_CONFIG: volumes: - - ./config:/home/opensim/opensim/bin/config - + - ./config-$OS_CONFIG:/home/opensim/opensim/bin/config + # Loden generated asset directory tree is stored externally + - ./LodenAssets:/home/opensim/opensim/bin/LodenAssets + networks: + - localnet ports: - - 8002:8002/tcp - - 8002:8002/udp - 9000:9000/tcp - 9000:9000/udp - 9010:9010/tcp - 9010:9010/udp - links: - - dbservice:dbservice - restart: unless-stopped + # restart: always diff --git a/image-opensim-herbal3d/env b/image-opensim-herbal3d/env new file mode 100644 index 0000000..367f0ad --- /dev/null +++ b/image-opensim-herbal3d/env @@ -0,0 +1,22 @@ +# Overall parameters for building and storing the OpenSimulator image. +# This file is 'source'ed in Bash scripts and used by docker-compose. + +# While nearly everything can be moved into this file, these are the +# top level build and run configurations but most of the configuration +# happens in the config-$OS_CONFIG directory. + +# NOTE: the assignment format is restricted so it works as a Bash +# assignment file and a docker-compose env-file + +# The sources to build +OS_GIT_REPO=git://opensimulator.org/git/opensim +OS_GIT_BRANCH=master +# OS_GIT_BRANCH=opensim-rel-0.9.3.8940 +OS_BUILDTARGET=Release +OS_SLN=OpenSim.sln + +# The container parameters +IMAGE_OWNER=misterblue +IMAGE_NAME=opensim-herbal3d +IMAGE_VERSION=latest +DOCKER_IMAGE="${IMAGE_OWNER}/${IMAGE_NAME}:${IMAGE_VERSION}" diff --git a/image-opensim-herbal3d/envToEnvironment.sh b/image-opensim-herbal3d/envToEnvironment.sh new file mode 100755 index 0000000..8347cd4 --- /dev/null +++ b/image-opensim-herbal3d/envToEnvironment.sh @@ -0,0 +1,10 @@ +#! bin/bash +# The ./env file is formatted for docker-compose +# This script outputs a conversion of that file with +# 'export' added to each line so it can be set into +# a Bash environment. + +TEMPFILE=/tmp/envToEnvironment$$ +sed -e 's/^\([A-Z]\)/export \1/' < ./env > "$TEMPFILE" +source "$TEMPFILE" +rm -f "$TEMPFILE" diff --git a/image-opensim-herbal3d/pushOpenSimImage.sh b/image-opensim-herbal3d/pushOpenSimImage.sh new file mode 100755 index 0000000..e7fa307 --- /dev/null +++ b/image-opensim-herbal3d/pushOpenSimImage.sh @@ -0,0 +1,20 @@ +#! /bin/bash +# Push the local image named "opensim-herbal3d" to the repository. +# The image tag is set to "latest". + +# The repository image name can be over-ridden with the environment variable REPO_IMAGE. + +export IMAGE_OWNER=${IMAGE_OWNER:-misterblue} +export IMAGE_NAME=${IMAGE_NAME:-opensim-herbal3d} +export IMAGE_VERSION=${IMAGE_VERSION:-latest} + +VERSIONLABEL=$(docker run --rm --entrypoint /home/opensim/getVersion.sh ${IMAGE_NAME}:${IMAGE_VERSION} OS_GIT_DESCRIBE) + +echo "Pushing docker image for opensim version ${VERSIONLABEL}" + +for tagg in ${VERSIONLABEL} ${IMAGE_VERSION} ; do + IMAGE=${IMAGE_OWNER}/${IMAGE_NAME}:${tagg} + docker tag ${IMAGE_NAME} ${IMAGE} + echo " Pushing ${IMAGE}" + docker push ${IMAGE} +done diff --git a/image-opensim-herbal3d/restart-herbal3d.sh b/image-opensim-herbal3d/restart-herbal3d.sh deleted file mode 100755 index 5c4c430..0000000 --- a/image-opensim-herbal3d/restart-herbal3d.sh +++ /dev/null @@ -1,36 +0,0 @@ -#! /bin/bash -# Stop the running opensimulator - -BASE=$(pwd) - -export CONFIG_NAME=${CONFIG_NAME:-standalone} - -# This export fakes out the environment setup script to look for files in -# build environment rather than in run environment. -export OPENSIMBIN=$BASE -source config/scripts/setEnvironment.sh -unset OPENSIMBIN - -# Use the generic docker-compose file or the one specific to the configuration if it exists -cd "$BASE" -COMPOSEFILE="config/config-${CONFIG_NAME}/docker-compose.yml" -if [[ -z "$OS_DOCKER_CONTAINER_CONFIG" ]] ; then - # if using external configuration, include docker-compose with the mount - COMPOSEFILE="config/config-${CONFIG_NAME}/docker-compose-external-config.yml" -fi - - -echo "Restarting configuration $CONFIG_NAME from \"$COMPOSEFILE\"" - -# update any of the images -# docker-compose \ -# --file "$COMPOSEFILE" \ -# pull - -docker compose \ - --file "$COMPOSEFILE" \ - --project-name opensim-${CONFIG_NAME} \ - --project-directory "$BASE" \ - up \ - --detach \ - --remove-orphans diff --git a/image-opensim-herbal3d/restart-just-opensim.sh b/image-opensim-herbal3d/restart-just-opensim.sh deleted file mode 100755 index 86524f6..0000000 --- a/image-opensim-herbal3d/restart-just-opensim.sh +++ /dev/null @@ -1,28 +0,0 @@ -#! /bin/bash -# Stop the running opensimulator - -BASE=$(pwd) - -export CONFIG_NAME=${CONFIG_NAME:-standalone} - -# This export fakes out the environment setup script to look for files in -# build environment rather than in run environment. -export OPENSIMBIN=$BASE -source config/scripts/setEnvironment.sh -unset OPENSIMBIN - -# Use the generic docker-compose file or the one specific to the configuration if it exists -cd "$BASE" -COMPOSEFILE="config/config-${CONFIG_NAME}/docker-compose.yml" -if [[ -z "$OS_DOCKER_CONTAINER_CONFIG" ]] ; then - # if using external configuration, include docker-compose with the mount - COMPOSEFILE="config/config-${CONFIG_NAME}/docker-compose-external-config.yml" -fi - - -echo "Restarting configuration $CONFIG_NAME from \"$COMPOSEFILE\"" - -docker compose \ - --file "$COMPOSEFILE" \ - --project-name opensim-${CONFIG_NAME} \ - restart -t 10 opensim diff --git a/image-opensim-herbal3d/restart-opensim.sh b/image-opensim-herbal3d/restart-opensim.sh new file mode 100755 index 0000000..fc305e2 --- /dev/null +++ b/image-opensim-herbal3d/restart-opensim.sh @@ -0,0 +1,18 @@ +#! /bin/bash +# Stop the running opensimulator + +BASE=$(pwd) + +# Get the container parameters into the environment +# (Needs to be in the environment for the docker-compose.yml file) +source ./envToEnvironment.sh + +export OS_CONFIG=${OS_CONFIG:-standalone} + +echo "Restarting configuration $CONFIG_NAME from docker-compose.yml" + +docker-compose \ + --file docker-compose.yml \ + --env-file ./env \ + --project-name opensim-${OS_CONFIG} \ + restart diff --git a/image-opensim-herbal3d/run-herbal3d.sh b/image-opensim-herbal3d/run-herbal3d.sh deleted file mode 100755 index 6e8bb0e..0000000 --- a/image-opensim-herbal3d/run-herbal3d.sh +++ /dev/null @@ -1,77 +0,0 @@ -#! /bin/bash -# Run the herbal3d configuration. - -# Since the initial run has to create and initialize the MYSQL database -# the first time, this sets the passwords into the environment before -# running things. - -# Be sure to set environment variables: -# CONFIGKEY=passwordForCryptFile (optional. Not needed if os-secrets is not ccrypt'ed) -# CONFIG_NAME=nameOfRunConfiguration (default 'standalone' of not supplied) -# EXTERNAL_HOSTNAME=IPorDNSnameForSimulator - -# If this environment variable is defined, the configuration files are updated with -# configuration values in the container (at container runtime). Otherwise, the -# configuration files are updated with values external to the container (in the -# filesystem of the invoker and the internal directory 'bin/config/ is mounted -# as the local 'config' directory. -# export OS_DOCKER_CONTAINER_CONFIG="yes" - -BASE=$(pwd) - -if [[ -z "$EXTERNAL_HOSTNAME" ]] ; then - echo "Environment variable EXTERNAL_HOSTNAME is not set." - echo "NOT STARTING!" - exit 3 -fi - -export CONFIGKEY=$CONFIGKEY -export EXTERNAL_HOSTNAME=$EXTERNAL_HOSTNAME -export CONFIG_NAME=${CONFIG_NAME:-standalone} - -# This export fakes out the environment setup script to look for files in -# build environment rather than in run environment. -export OPENSIMBIN=$BASE - -# set all environment variables -echo "Setting environment vars" -cd "$BASE" -source config/scripts/setEnvironment.sh -# echo "================================" -# env | sort -# echo "================================" - -# if configuration files are external to the container, run the configuration -if [[ -z "$OS_DOCKER_CONTAINER_CONFIG" ]] ; then - echo "opensim-docker: running configuration file initialization" - cd "$BASE" - config/scripts/updateConfigFiles.sh - config/scripts/linkInConfigs.sh -fi - -# Use the generic docker-compose file or the one specific to the configuration if it exists -cd "$BASE" -COMPOSEFILE="config/config-${CONFIG_NAME}/docker-compose.yml" -if [[ -z "$OS_DOCKER_CONTAINER_CONFIG" ]] ; then - # if using external configuration, include docker-compose with the mount - COMPOSEFILE="config/config-${CONFIG_NAME}/docker-compose-external-config.yml" -fi -echo "Docker-compose file: ${COMPOSEFILE}" - -# Local directory for storage of sql persistant data (so region -# contents persists between container restarts). -# This must be the same directory as in config-$CONFIG_NAME/docker-compose.yml. -if [[ ! -d "$HOME/opensim-sql-data" ]] ; then - echo "Directory \"$HOME\opensim-sql-data\" does not exist. Creating same." - mkdir -p "$HOME/opensim-sql-data" - chmod o+w "$HOME/opensim-sql-data" -fi - -# https://docs.docker.com/engine/security/userns-remap/ -# --userns-remap="opensim:opensim" -docker compose \ - --file "$COMPOSEFILE" \ - --project-name opensim-${CONFIG_NAME} \ - --project-directory "$BASE" \ - up \ - --detach diff --git a/image-opensim-herbal3d/run-opensim.sh b/image-opensim-herbal3d/run-opensim.sh new file mode 100755 index 0000000..c245dc8 --- /dev/null +++ b/image-opensim-herbal3d/run-opensim.sh @@ -0,0 +1,44 @@ +#! /bin/bash +# Run the OpenSimulator image + +# Since the initial run has to create and initialize the MYSQL database +# the first time, this sets the passwords into the environment before +# running things. + +# Be sure to set environment variables: +# OS_CONFIG=nameOfRunConfiguration (default 'standalone' of not supplied) + +BASE=$(pwd) + +# Get the container parameters into the environment +# source ./envToEnvironment.sh +source ./env + +# The selects the configuration to mount and use in the Docker image +export OS_CONFIG=${OS_CONFIG:-standalone} +echo "Using configuration \"$OS_CONFIG\"" + +# Get the secrets for the environment +# (the following 'export' fakes out 'setEnvironment' to use the local directory +export OPENSIMCONFIG=${BASE}/config-${OS_CONFIG} +source ${OPENSIMCONFIG}/scripts/setEnvironment.sh + +# Local directory for storage of sql persistant data (so region +# contents persists between container restarts). +# This must be the same directory as in $COMPOSEFILE +if [[ ! -d "$HOME/opensim-sql-data" ]] ; then + echo "Directory \"$HOME/opensim-sql-data/\" does not exist. Creating same." + mkdir -p "$HOME/opensim-sql-data" + chmod o+w "$HOME/opensim-sql-data" +fi + +cd "${BASE}" + +# https://docs.docker.com/engine/security/userns-remap/ +# --userns-remap="opensim:opensim" +docker-compose \ + --file docker-compose.yml \ + --env-file ./env \ + --project-name opensim-${OS_CONFIG} \ + up \ + --detach diff --git a/image-opensim-herbal3d/stop-herbal3d.sh b/image-opensim-herbal3d/stop-herbal3d.sh deleted file mode 100755 index dde04ec..0000000 --- a/image-opensim-herbal3d/stop-herbal3d.sh +++ /dev/null @@ -1,27 +0,0 @@ -#! /bin/bash -# Stop the running opensimulator - -BASE=$(pwd) - -export CONFIG_NAME=${CONFIG_NAME:-standalone} - -# This export fakes out the environment setup script to look for files in -# build environment rather than in run environment. -export OPENSIMBIN=$BASE -source config/scripts/setEnvironment.sh -unset OPENSIMBIN - -# Use the generic docker-compose file or the one specific to the configuration if it exists -cd "$BASE" -COMPOSEFILE="config/config-${CONFIG_NAME}/docker-compose.yml" -if [[ -z "$OS_DOCKER_CONTAINER_CONFIG" ]] ; then - # if external configuration, include docker-compose with the mount - COMPOSEFILE="config/config-${CONFIG_NAME}/docker-compose-external-config.yml" -fi - -echo "Stopping configuration $CONFIG_NAME from \"$COMPOSEFILE\"" - -docker compose \ - --file "$COMPOSEFILE" \ - --project-name opensim-${CONFIG_NAME} \ - down diff --git a/image-opensim-herbal3d/stop-opensim.sh b/image-opensim-herbal3d/stop-opensim.sh new file mode 100755 index 0000000..9ea74f7 --- /dev/null +++ b/image-opensim-herbal3d/stop-opensim.sh @@ -0,0 +1,18 @@ +#! /bin/bash +# Stop the running opensimulator + +BASE=$(pwd) + +# Get the container parameters into the environment +# source ./envToEnvironment.sh +source ./env + +export OS_CONFIG=${OS_CONFIG:-standalone} + +echo "Stopping configuration $OS_CONFIG from docker-compose.sh" + +docker-compose \ + --file docker-compose.yml \ + --env-file ./env \ + --project-name opensim-${OS_CONFIG} \ + down diff --git a/image-opensim-herbal3d/vimrc b/image-opensim-herbal3d/vimrc deleted file mode 100755 index e00ec5b..0000000 --- a/image-opensim-herbal3d/vimrc +++ /dev/null @@ -1,8 +0,0 @@ -set tabstop=4 -set shiftwidth=4 -set expandtab -set autoindent -set ff=unix - -set background=dark -syntax enable