Install OpenSim 0.9.2.2 in Grid mode on Ubuntu 24.04

In this example of configuration I will use:
For the database the user opensim with the password DB_Password. (Chose whatever you want instead)
For the domain name replace domain.com by your own.

Dependency installation:
Before installing OpenSim you need Mono, MySQL and unzip.

sudo apt install gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
sudo apt dist-upgrade
sudo apt install mono-complete mysql-server unzip

MySQL configuration:

sudo nano /etc/mysql/my.cnf

Add the following lines before:
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

[mysqld]
default_storage_engine = InnoDB
disable_log_bin
innodb_buffer_pool_size = 2G
innodb_log_file_size = 256M
innodb_log_buffer_size = 16M
innodb_flush_method = O_DIRECT
innodb_flush_log_at_trx_commit = 0
innodb_buffer_pool_instances = 2
default-authentication-plugin=mysql_native_password

Restart MySQL:

sudo service mysql restart
sudo mysql_secure_installation -u root -p

Database creation:

sudo mysql
mysql> create database opensim;
mysql> create user opensim identified by 'DB_Password';
mysql> create user 'opensim'@'localhost' identified by 'DB_Password';
mysql> GRANT ALL PRIVILEGES ON opensim.* TO 'opensim'@'localhost';
mysql> FLUSH PRIVILEGES;

Check the opensim account is mysql_native_password and disconnect from MySQL:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
mysql> \q

Download and Extract OpenSim:

cd ~
wget http://opensimulator.org/dist/OpenSim-LastAutoBuild.zip
mkdir ~/HG
unzip OpenSim-LastAutoBuild.zip -d HG/

Grid configuration:

cd ~/HG/bin
cp Robust.HG.ini.example Robust.HG.ini
cp OpenSim.ini.example OpenSim.ini
cp config-include/GridCommon.ini.example config-include/GridCommon.ini
cp config-include/osslEnable.ini.example config-include/osslEnable.ini

Edit the Robust.HG.ini file

nano -c ~/HG/bin/Robust.HG.ini

Edit the lines 28 – 240 – 620 – 623 – 834
Uncomment 104 – 106 – 111 – 191 – 198 – 731

	[Const]
28		BaseURL = "http://domain.com"

	[ServiceList]
104		OfflineIMServiceConnector = "${Const|PrivatePort}/OpenSim.Addons.OfflineIM.dll:OfflineIMServiceRobustConnector"
106		GroupsServiceConnector = "${Const|PrivatePort}/OpenSim.Addons.Groups.dll:GroupsServiceRobustConnector"
111		UserProfilesServiceConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:UserProfilesConnector"
	
	[Hypergrid]
191		HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
198		GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"
	
	[DatabaseService]
240		ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=DB_Password;Old Guids=true;SslMode=None;"
	
	[GridInfoService]
620		gridname = "NOM DE LE GRID"
623		gridnick = "nom_de_la_grid"
	
	[UserAgentService]
731		ShowUserDetailsInHGProfile = True
	
	[UserProfilesService]
834		Enabled = true

Launch Robust and make sure there is no errors:

mono ~/HG/bin/Robust.exe -inifile=Robust.HG.ini

In the Robust console create the first user:

R.O.B.U.S.T.# create user
First name [Default]: Ludo
Last name [User]: Davis
Password:
Email []:
User ID (enter for random) []:
Model name []:

Quit Robust with the quit command

R.O.B.U.S.T.# quit

Edit the OpenSim.ini file

nano -c ~/HG/bin/OpenSim.ini

Edit the lines: 53 – 1164 – 1179 – 1141 – 1202
Uncomment: 356 – 773 – 778 – 782 – 787 – 795 – 1152 – 1192 – 1276 – 1313
Comment: 1310

	[Const]
53		BaseHostname = "domain.com"

	[Map]
356		GenerateMaptiles = true

	[Messaging]
773		OfflineMessageModule = "Offline Message Module V2"
778		OfflineMessageURL = ${Const|PrivURL}:${Const|PrivatePort}
782		StorageProvider = OpenSim.Data.MySQL.dll
787		MuteListModule = MuteListModule
792		ForwardOfflineGroupMessages = true

	[Groups]
1141		Enabled = true
1152		Module = "Groups Module V2"
1164		ServicesConnectorModule = "Groups HG Service Connector"
1179		GroupsServerURI = ${Const|BaseURL}:${Const|PrivatePort}
1192		MessagingModule = "Groups Messaging Module V2"
1202		MessageOnlineUsersOnly = true

	[UserProfiles]
1276		ProfileServiceURL = "${Const|BaseURL}:${Const|PublicPort}"

	[Architecture]
1310		; Include-Architecture = "config-include/Standalone.ini"
1313		Include-Architecture = "config-include/GridHypergrid.ini"

Edit the GridCommon.ini file

nano -c ~/HG/bin/config-include/GridCommon.ini

Edit the line19
Uncomment 16 – 49
Comment 9

	[DatabaseService]
9		; Include-Storage = "config-include/storage/SQLiteStandalone.ini";
16		StorageProvider = "OpenSim.Data.MySQL.dll"
19		ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=DB_Password;Old Guids=true;SslMode=None;"

	[Hypergrid]
49		GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"

Firewall configuration:

sudo ufw allow "OpenSSH"
sudo ufw allow 8002/tcp
sudo ufw allow 9000/tcp
sudo ufw allow 9000:9100/udp
sudo ufw enable


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *