mirror of
https://github.com/Misterblue/opensim-docker.git
synced 2026-07-29 19:03:18 +00:00
Update image-herbal3d to new format
Bump version.
This commit is contained in:
+1
-1
@@ -1 +1 @@
|
||||
4.0.4
|
||||
4.0.5
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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/
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
#! /bin/bash
|
||||
# Build docker image for sourcing Basilts
|
||||
|
||||
docker build \
|
||||
--pull \
|
||||
-t basil-herbal3d \
|
||||
-f Dockerfile-basil \
|
||||
.
|
||||
@@ -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
|
||||
|
||||
+90
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
+26
-29
@@ -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;"
|
||||
|
||||
-1
@@ -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
|
||||
+16
-9
@@ -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
|
||||
# <edit 'tempFile' adding real passwords>
|
||||
# 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?
|
||||
+16
-12
@@ -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" <<EOFFFF
|
||||
CREATE DATABASE $MYSQL_DB_DB;
|
||||
USE $MYSQL_DB_DB;
|
||||
CREATE USER '$MYSQL_DB_USER'@'%' IDENTIFIED BY '$MYSQL_DB_USER_PASSWORD';
|
||||
CREATE USER '$MYSQL_DB_USER'@'%' IDENTIFIED BY '$MYSQL_DB_USER_PW';
|
||||
GRANT ALL ON $MYSQL_DB_DB.* to '$MYSQL_DB_USER'@'%';
|
||||
quit
|
||||
EOFFFF
|
||||
cat > "$SQLOPTIONS" <<EOFFFF
|
||||
[client]
|
||||
user=$MYSQL_ROOT_ACCOUNT
|
||||
user=root
|
||||
password=$MYSQL_ROOT_PASSWORD
|
||||
host=$MYSQL_DB_SOURCE
|
||||
host=$MYSQL_DB_HOST
|
||||
EOFFFF
|
||||
|
||||
# If the database is started at the same time, what for it to initialize
|
||||
until mysql --defaults-extra-file=$SQLOPTIONS -e "show databases" ; do
|
||||
until mysql --defaults-extra-file=$SQLOPTIONS -e "show databases" > /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"
|
||||
+6
-14
@@ -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"
|
||||
+28
@@ -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
|
||||
|
||||
+89
@@ -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"
|
||||
@@ -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.
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
+7
-8
@@ -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
|
||||
+8
-6
@@ -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
|
||||
-1
@@ -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
|
||||
+16
-9
@@ -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
|
||||
# <edit 'tempFile' adding real passwords>
|
||||
# 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?
|
||||
@@ -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" <<EOFFFF
|
||||
CREATE DATABASE $MYSQL_DB_DB;
|
||||
USE $MYSQL_DB_DB;
|
||||
CREATE USER '$MYSQL_DB_USER'@'%' IDENTIFIED BY '$MYSQL_DB_USER_PW';
|
||||
GRANT ALL ON $MYSQL_DB_DB.* to '$MYSQL_DB_USER'@'%';
|
||||
quit
|
||||
EOFFFF
|
||||
cat > "$SQLOPTIONS" <<EOFFFF
|
||||
[client]
|
||||
user=root
|
||||
password=$MYSQL_ROOT_PASSWORD
|
||||
host=$MYSQL_DB_HOST
|
||||
EOFFFF
|
||||
|
||||
# If the database is started at the same time, what for it to initialize
|
||||
until mysql --defaults-extra-file=$SQLOPTIONS -e "show databases" > /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
|
||||
|
||||
@@ -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
|
||||
+28
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -1,2 +0,0 @@
|
||||
[OSAuth]
|
||||
Enabled=true;
|
||||
@@ -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
|
||||
@@ -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"
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
-198
@@ -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"
|
||||
@@ -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
|
||||
-97
@@ -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
|
||||
-226
@@ -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_<Region_Name> = <flags>
|
||||
; Valid flags are:
|
||||
; DisallowForeigners -- HG visitors not allowed
|
||||
; DisallowResidents -- only Admins and Managers allowed
|
||||
; Example:
|
||||
; Region_Test_1 = "DisallowForeigners"
|
||||
|
||||
-1225
File diff suppressed because it is too large
Load Diff
@@ -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"
|
||||
@@ -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
|
||||
@@ -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"
|
||||
@@ -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_<Region_Name> = <flags>
|
||||
; 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}"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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_<RegionName> = "<flags>"
|
||||
;; where <flags> 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_<Region_Name> = <flags>
|
||||
; 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_<UserLevel> = 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"
|
||||
-198
@@ -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"
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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}
|
||||
@@ -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
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
+16
-17
@@ -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
|
||||
@@ -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}"
|
||||
Executable
+10
@@ -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"
|
||||
Executable
+20
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
Executable
+18
@@ -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
|
||||
@@ -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
|
||||
Executable
+44
@@ -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
|
||||
@@ -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
|
||||
Executable
+18
@@ -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
|
||||
@@ -1,8 +0,0 @@
|
||||
set tabstop=4
|
||||
set shiftwidth=4
|
||||
set expandtab
|
||||
set autoindent
|
||||
set ff=unix
|
||||
|
||||
set background=dark
|
||||
syntax enable
|
||||
Reference in New Issue
Block a user