Host own Minetest server on BSDforALL VPS
#1
Star 
Still haven't tried that out, but I will in the nearest future! ^^

Don't forget to create backups before you proceed...

Using pkg_add for stable builds

You can now use the doas pkg_add minetest again (since they actually updated it).

Using automated build for dev builds

Or use the automated dev builds which I (Miniontoby) am providing at | https://edugit.org/Miniontoby/openbsd-minetest-builds/-/releases

Building minetest yourself

Install Dependencies:

Code:
doas pkg_add g++ cmake luajit sqlite3 git jpeg png doxygen

NOTE: if prompted for a version for g++, version 11.2 is confirmed working

Build IrrlichtMt:
Code:
git clone https://github.com/minetest/irrlicht.git;
cd irrlicht;
cmake . -B build -DBUILD_SHARED_LIBS=FALSE;
cmake --build build;


Build Minetest:
Code:
cd ../;
git clone https://github.com/minetest/minetest.git;
cd minetest;
cmake . -B build -DCMAKE_PREFIX_PATH=../irrlicht/build -DRUN_IN_PLACE=TRUE -DBUILD_CLIENT=FALSE -DBUILD_SERVER=TRUE -DENABLE_SOUND=OFF -DENABLE_GETTEXT=OFF -DENABLE_CURSES=OFF -DENABLE_POSTGRESQL=OFF -DENABLE_LEVELDB=OFF -DENABLE_REDIS=OFF -DENABLE_SPATIAL=OFF;
cmake --build build;


Install Game for Minetest
Minetest on its own is just an engine. You also need to install a game to load into the engine. There are several games available, but here are a few to try on your first server.

Install Minetest Game
The default minetest game is confusingly called Minetest Game and can be installed like this:

Code:
cd games

git clone https://github.com/minetest/minetest_game.git



Install IRCNow Game
If you want more than just the minetest_game mods, then use ircnow_game. It includes an IRC pack (with the fix below already included), ircnow_messages (based on the irc mod settings) and skin mod with uploader and minecraft skin (64x64) compatiblity.

Code:
doas pkg_add unzip
cd games
wget https://minetest.ircforever.org/ircnow_game.zip
unzip ircnow_game.zip


Install Exile Game
Another minetest game hosted here on IRCNOW is Exile.

Code:
cd games
git clone https://codeberg.org/Mantar/Exile.git


Running the server:
Running a server the default way
Code:
[list]
[*]add world folder or let it be created.
[*]Edit minetest.conf: <SOMETHING> = required, [SOMETHING] = optional, <something || anything> = or
[/list]
name = <INGAME NICKNAME>
server_name = <SERVER NAME>
server_description = <SERVER DESCRIPTION>
server_address = <YOUR VPS ADDRESS>
server_url = [YOUR SERVER PAGE URL]
server_announce = <true || false>
serverlist_url = servers.minetest.net
port = <YOUR PORT>
bind_address = [YOUR BIND ADDRESS]
ipv6_server = <true || false>
motd = Welcome by my server
max_users = <YOUR MAX>
enable_damage = <true || false>
creative_mode = <true || false>
[list]
[*]run the world:
./bin/minetestserver --world worlds/<WORLDNAME> --config minetest.conf
[/list]

Running multiple servers the easier way
Check mtctl: https://wiki.miniontoby.host.ircnow.org/...toby/Mtctl
There is full instruction for installing and usage

Installing Mods
Mods are installed in the mods directory where you installed minetest. As an example, lets install the irc mod so you can connect your in game chat to an irc channel. The irc mod uses submodules so you need to clone it with --recursive like so:

Code:
cd mods

git clone --recursive https://github.com/minetest-mods/irc.git


You also need to install luasocket to the system

Code:
pkg_add luasocket

You'll need to add irc to your list of secure.trusted_mods in minetest.conf and the following options for irc mod. Additional options are available. Check mods/irc/README.md for details.

Code:
secure.trusted_mods = irc

irc.server = irc.ircnow.org
irc.channel = #minetest
irc.interval = 2.0
irc.nick = MTDEV
irc.send_join_part = true
irc.realname = Join at YOUR.MINETEST.SERVER.ADDRESS.com:PORT

You also need to enable the irc mod for your world by editing the world.mt file. You'll find it in your worlds directory and should have a line like this. Set it to false to disable it.
Code:
load_mod_irc = true

Known Issues
IRC Mod

There is a known issue connecting to some irc servers that produces an error like this:

Code:
ERROR[Server]: IRC: Connection error: irc.example.com: /home/minetest/mods/irc/hooks.lua:174: attempt to index local 'user' (a nil value) -- Reconnecting in 600 seconds.

If you get this error, try modifying line 174 from this:

Code:
if user.nick and target == irc.config.channel then

to this:

Code:
if user and user.nick and target == irc.config.channel then

This checks that user isn't null before checking user.nick.

Invalid Wide String
We've finally found a fix for the 'Invalid Wide String' errors when using non-English characters. It's related to special handling needed for BSD specific implementation of iconv. Here's the forum post Mantar made relating to the issue.
Mantar submitted a PR which was merged into Head. So updating your minetest git and recompiling should resolve this issue.

Code:
cd minetest

git pull
Then run the cmake commands form the Build Minetest section above.

Quote:Taken from: https://wiki.freeirc.org/pmwiki.php?n=Openbsd.Minetest
https://bsdforall.org/epay/ <- Rent your server and support us!
https://wiki.ircnow.org/index.php?n=Minutemin.Bootcamp <- Sysadmin training
My website: https://monsieur.bsdforall.org
My e-mail: monsieur@bsdforall.org

All the best \(^^)/
Reply


Messages In This Thread
Host own Minetest server on BSDforALL VPS - by monsieur - 10-26-2024, 07:09 PM



Users browsing this thread: 1 Guest(s)