mirror of https://codeberg.org/minenux/minenux
Add the server guide for.. using XDG debian oficial packages flavor
parent
70a4651ccd
commit
8cbe619d3d
|
@ -0,0 +1,167 @@
|
|||
# Minetest Server
|
||||
|
||||
**Minetest package** from Debian although it is played on your computer or phone, it can also be played online,
|
||||
that means it is a client - server game, **where the client is the guest and the server is the host.**
|
||||
|
||||
## Knowning server and client
|
||||
|
||||
Minetest (also multicraft too as same) in Debian are separated in two packages, the server and the player,
|
||||
the server is renamed to `minetest-server`, and client/player is named `minetest`, there's another package
|
||||
for the common files like fonts etc named `minetest-data` that must be need on each case.
|
||||
|
||||
**The server part (inclusivelly when you are using the `minetest` normal program to play, which embeds a server already)
|
||||
provides a remote host of the game, so client just use all resources from network.**
|
||||
|
||||
## Running the Server
|
||||
|
||||
The minetest package provides a daemon service named `minetest-server` running with the specific user `Debian-minetest`.
|
||||
|
||||
The minetest package until Debian 10 is 0.4 releases, since debian 11 minetest is 5.X releases, in `buster` we
|
||||
can run 5.0 throught backports packages, in `stretch` we can run 0.4.17 throught backports packages.
|
||||
|
||||
## Choosing server
|
||||
|
||||
Mostly all tutorials recommends use a VPS or dedicated server to host a game server, but this is not necesary..
|
||||
**the real requirements are the bandwidth and the stability of the operating system**. (By example residential Internet
|
||||
connections tend to be unreliable and also have less upload speed, or not be able to keep a server online 24/7).
|
||||
|
||||
So then those are the point to fill when plans to deploy a public server:
|
||||
|
||||
* **Networking**: you must have a decent bandwidth of **upload speed** (that is not same as download one)
|
||||
* **System**: you must use a simple OS like alpine focused on **stability** (that is not the same of fashioned)
|
||||
* **Storage**: is recommended to use SSD or faster RAID disks due **I/O performance** (mods uses many plain files)
|
||||
|
||||
Rest of requirements are most fine, by example 1G Ram if the server is dedicated to minetest are so enough, but
|
||||
over debian if yu plan to host many heavy mods will need 8G RAM recommended.
|
||||
|
||||
## General Deploy
|
||||
|
||||
The minetest server uses some artifact that you must take in care before start, but first of all:
|
||||
|
||||
1. We will assume you already downloaded the server software or compiled yourselft.
|
||||
2. We will created a dedicated user to run the server, no cares if there's already one similar to.
|
||||
3. We will assume a `xdg` debian compilant version, that means all will be integrated in specific paths
|
||||
4. We will assume that you are using only Debian oficial packages.
|
||||
|
||||
#### Create a dedicated user if not exist
|
||||
|
||||
This step is already done in Debian systems, A Debian-minetest system user is set up during the package
|
||||
installation process, which is used to run minetest servers.
|
||||
|
||||
* The minetest user is `Debian-minetest`
|
||||
* User home is in `/var/games/minetest-server`
|
||||
* System mods and buildin ones are taken from `/usr/share/games/minetest`
|
||||
|
||||
The Debian `minetest-server` package comes with "shitstemd" unit files, it features as a template format
|
||||
if you plan to run several servers on the same host. Lest explain that later. Now with a dedicated user we
|
||||
must know the artifact parts of the minetest server to deploy.
|
||||
|
||||
#### Minetest server parts artifacts
|
||||
|
||||
A minetest server need as minimun of 3 parameters to indicate: game id, config file and world path
|
||||
|
||||
* **gameid** : a game itself is a directory with collection of mods that defines behaviour of the game, those
|
||||
will load the files inside mods directories, **Debian package assume** `xdg` **so gameid are located at**
|
||||
`/var/games/minetest-server/.minetest/games`, there are some famous:
|
||||
* `minetest_game` is the default one.. download from https://github.com/minetest/minetest_game/tags
|
||||
and must match the minetest version runing, is the most stable and basic to run.
|
||||
* `extreme_survival` is a huge all in one but very dificult, it must be downloaded
|
||||
from https://github.com/maikerumine/ESM4/releases/tag/MT_0.4.16_FREEZE for 0.4
|
||||
or https://github.com/maikerumine/ESM5/releases/tag/MT_0.5.0_Server for 5.2
|
||||
* `mineclone2` famous high featured full of things experience, it must be downloaded
|
||||
from https://git.minetest.land/MineClone2/MineClone2/tags but there's only one version
|
||||
for 0.4.X at https://github.com/davedevils/MineClone, since v0.51 are only for 5.X releases.
|
||||
* `clonecrat` like the previous one but lighter, download at https://github.com/notanewbie/clonecraft_ZIP
|
||||
but is a older development so use only for 0.4 releases
|
||||
* **world** : a world itself, is a directory with collection of files for environment and/or building(s) and
|
||||
all saved data associated with a world, **Debian package assume** `xdg` **so gameid are located at**
|
||||
`/var/games/minetest-server/.minetest/worlds`, by default, it (will) contains:
|
||||
* `auth.txt` (`auth.db`) is the file for players connected, with passwords and permissions,
|
||||
the `auth_rx` manages as "db" in similar way, but added two extra columns, login dates and time alive.
|
||||
* `env_meta.txt` it contains the values specific for this world, of configuration by example
|
||||
for map generation, time passed sinde begin of the world, time of the day, etc.
|
||||
* `map_meta.txt` it contains the configuration of imple global map variables. The map generator
|
||||
can be defined here and tweaked with parameters.
|
||||
* `map.sqlite` (`map.txt`) is the content of the mad data of echa node, block or stuff in the game,
|
||||
related to core engine and map generation.
|
||||
* `world.mt` is the definition of the world, is the only file that must be present before anything,
|
||||
if the world is new or if the other files are already present, this must be in sync with.
|
||||
* **minetest.conf** : the config file that the server must use to start, it defines the path to the world place
|
||||
and the usage of the gameid of the world, also paramteters to run the host of the game, **This file can
|
||||
be used in Debian in conjunction with shitstemd template feature, so specifid server instances are defined by**
|
||||
`/etc/minetest/` **directory and each config file**, each config file need settings but the minimal ones
|
||||
to be configure are:
|
||||
* `map-dir` it defines the `world` to be used by direct path of the world directory.
|
||||
* `default_game` it defines the `gameid` to be used inside the running minetest server adn for the world.
|
||||
|
||||
The `map-dir` is only need if you plan to use the shitstemd template feature, if you will run only one server,
|
||||
this parameter of the config file can be commented or just use default path. But if you have more that one
|
||||
world you must specify this config setting.
|
||||
|
||||
Rest of files and setting are enough as default and must be tuned depending of the target of the dessired game.
|
||||
|
||||
#### Minetest server running the parts
|
||||
|
||||
Once defined the artifact parts of the server to deploy, we must invoke the software, based on the previous
|
||||
minimal artifact parts those are the minimal parameters to use:
|
||||
|
||||
1. Login as the user of the running server `su -l Debian-minetest`
|
||||
2. create or edit the config file in `/etc/minetest/minetest.conf` the default one is enought
|
||||
3. run the service as `/usr/sbin/service minetest-server restart`
|
||||
|
||||
If your server crashes, then look at the `minetest.log` in `/var/log/minetest/` cos lest remenber that
|
||||
we are using a `xdg` pacakge integrated to system.
|
||||
|
||||
#### Networking bus nets
|
||||
|
||||
If you are usin some kind of VPS or are inside a private network (like behind of a router), players outside
|
||||
of your network won't be able to join the server unless you port forward.
|
||||
|
||||
* Choose a port to run the server on.
|
||||
* The default of 30000 can be used, but can be changed in `port` of `minetest.conf` file
|
||||
* Find your ip adddress internally, by example just type `ip addr`
|
||||
* Login to your router, and port forward UDP on your chosen port to the internal IP you found
|
||||
* Alter any firewalls you may have to allow traffic to the port you choose
|
||||
* Make your server listed in the server list by setting the following settings in `minetest.conf`
|
||||
* change `server_address` to the public ip of the router (yes must be changed if you provider change it)
|
||||
* restart the server and network
|
||||
|
||||
## Advanced deploy
|
||||
|
||||
When setting up a new server, you should consider which protections are needed. This is extremely
|
||||
important for public servers, because you cannot predict who will connect or what they will do
|
||||
on your server.
|
||||
|
||||
#### Common problems include:
|
||||
|
||||
* Accidental or intentional damage to other players' work (griefing).
|
||||
* Chat spam (may include swearing or advertisements).
|
||||
* Aggression, harassment or other unwanted behaviours between players.
|
||||
* Trouble makers who evade bans.
|
||||
* Impersonation of well known people within the MT community.
|
||||
* Bugs, for example caused by mods, which allow a malicious player to execute arbitrary system commands.
|
||||
|
||||
Note that tnt and fire spreading, which are both enabled by default in singleplayer,
|
||||
are disabled by default on servers.
|
||||
|
||||
#### Managing your server
|
||||
|
||||
TODO
|
||||
|
||||
##### Using template shitstemd
|
||||
|
||||
You can use a systemd template feature to run several instances of server with same package in same host.
|
||||
|
||||
* Must have a especific config file in `/etc/minetest` by example `/etc/minetest/serverskyworld.conf`
|
||||
* Must run the daemon with `@` by example for config file below will be `/usr/sbin/service minetest@serverskyworld restart`
|
||||
|
||||
You can find a commented server configuration file on `/usr/share/doc/minetest/minetest.conf.example.gz`
|
||||
that can be used as template for start to editiing with command:
|
||||
`zcat /usr/share/doc/minetest/minetest.conf.example.gz > /etc/minetest/serverskyworld.conf`
|
||||
|
||||
#### Especific guides for
|
||||
|
||||
* Debian server guide for default debian packages
|
||||
* Debian server guides for VenenuX powered packages
|
||||
* Centos/fedora server guide for stupid windosers
|
||||
* Alpine server guide for high pro users and hackers
|
Loading…
Reference in New Issue