2017-08-18 10:47:40 +02:00
Minetest
========
2020-04-20 20:22:23 +02:00
![Build Status ](https://github.com/minetest/minetest/workflows/build/badge.svg )
2017-08-18 10:47:40 +02:00
[![Translation status ](https://hosted.weblate.org/widgets/minetest/-/svg-badge.svg )](https://hosted.weblate.org/engage/minetest/?utm_source=widget)
[![License ](https://img.shields.io/badge/license-LGPLv2.1%2B-blue.svg )](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html)
2019-03-02 04:44:35 +01:00
Minetest is a free open-source voxel game engine with easy modding and game creation.
2017-08-18 10:47:40 +02:00
2020-04-12 01:53:23 +02:00
Copyright (C) 2010-2020 Perttu Ahola < celeron55 @ gmail . com >
2017-08-18 10:47:40 +02:00
and contributors (see source file comments and the version control log)
2019-07-01 20:46:28 +02:00
In case you downloaded the source code
--------------------------------------
2017-08-18 10:47:40 +02:00
If you downloaded the Minetest Engine source code in which this file is
contained, you probably want to download the [Minetest Game ](https://github.com/minetest/minetest_game/ )
project too. See its README.txt for more information.
2018-12-03 00:43:02 +01:00
Table of Contents
------------------
1. [Further Documentation ](#further-documentation )
2. [Default Controls ](#default-controls )
3. [Paths ](#paths )
4. [Configuration File ](#configuration-file )
5. [Command-line Options ](#command-line-options )
6. [Compiling ](#compiling )
2018-12-13 20:19:19 +01:00
7. [Docker ](#docker )
8. [Version Scheme ](#version-scheme )
2018-12-03 00:43:02 +01:00
2017-08-18 10:47:40 +02:00
Further documentation
----------------------
2021-02-10 14:34:21 +01:00
- Website: https://minetest.net/
- Wiki: https://wiki.minetest.net/
- Developer wiki: https://dev.minetest.net/
- Forum: https://forum.minetest.net/
2018-10-06 04:43:26 +02:00
- GitHub: https://github.com/minetest/minetest/
2018-06-22 14:00:49 +02:00
- [doc/ ](doc/ ) directory of source distribution
2017-08-18 10:47:40 +02:00
Default controls
----------------
All controls are re-bindable using settings.
2018-07-29 10:21:09 +02:00
Some can be changed in the key config dialog in the settings tab.
2017-08-18 10:47:40 +02:00
2017-08-27 15:12:52 +02:00
| Button | Action |
|-------------------------------|----------------------------------------------------------------|
| Move mouse | Look around |
| W, A, S, D | Move |
| Space | Jump/move up |
| Shift | Sneak/move down |
| Q | Drop itemstack |
| Shift + Q | Drop single item |
| Left mouse button | Dig/punch/take item |
| Right mouse button | Place/use |
| Shift + right mouse button | Build (without using) |
| I | Inventory menu |
| Mouse wheel | Select item |
| 0-9 | Select item |
| Z | Zoom (needs zoom privilege) |
| T | Chat |
| / | Command |
| Esc | Pause menu/abort/exit (pauses only singleplayer game) |
| R | Enable/disable full range view |
| + | Increase view range |
| - | Decrease view range |
| K | Enable/disable fly mode (needs fly privilege) |
2019-07-01 20:46:28 +02:00
| P | Enable/disable pitch move mode |
2017-08-27 15:12:52 +02:00
| J | Enable/disable fast mode (needs fast privilege) |
| H | Enable/disable noclip mode (needs noclip privilege) |
2021-02-24 11:45:30 +01:00
| E | Aux1 (Move fast in fast mode. Games may add special features) |
2020-05-04 08:45:31 +02:00
| C | Cycle through camera modes |
| V | Cycle through minimap modes |
| Shift + V | Change minimap orientation |
2018-10-06 04:43:26 +02:00
| F1 | Hide/show HUD |
| F2 | Hide/show chat |
| F3 | Disable/enable fog |
| F4 | Disable/enable camera update (Mapblocks are not updated anymore when disabled, disabled in release builds) |
| F5 | Cycle through debug information screens |
| F6 | Cycle through profiler info screens |
2017-08-27 15:12:52 +02:00
| F10 | Show/hide console |
| F12 | Take screenshot |
2017-08-18 10:47:40 +02:00
Paths
-----
Locations:
2018-06-22 14:00:49 +02:00
* `bin` - Compiled binaries
* `share` - Distributed read-only data
* `user` - User-created modifiable data
2017-08-18 10:47:40 +02:00
Where each location is on each platform:
* Windows .zip / RUN_IN_PLACE source:
2019-07-21 01:59:37 +02:00
* `bin` = `bin`
* `share` = `.`
* `user` = `.`
2018-10-26 21:37:51 +02:00
* Windows installed:
2019-07-21 01:59:37 +02:00
* `bin` = `C:\Program Files\Minetest\bin (Depends on the install location)`
* `share` = `C:\Program Files\Minetest (Depends on the install location)`
* `user` = `%APPDATA%\Minetest`
2017-08-18 10:47:40 +02:00
* Linux installed:
2018-06-22 14:00:49 +02:00
* `bin` = `/usr/bin`
* `share` = `/usr/share/minetest`
* `user` = `~/.minetest`
2017-08-18 10:47:40 +02:00
* macOS:
2018-06-22 14:00:49 +02:00
* `bin` = `Contents/MacOS`
* `share` = `Contents/Resources`
* `user` = `Contents/User OR ~/Library/Application Support/minetest`
2017-08-18 10:47:40 +02:00
2018-06-22 14:00:49 +02:00
Worlds can be found as separate folders in: `user/worlds/`
2017-08-18 10:47:40 +02:00
2019-07-01 20:46:28 +02:00
Configuration file
------------------
2017-08-18 10:47:40 +02:00
- Default location:
`user/minetest.conf`
2019-07-01 20:46:28 +02:00
- This file is created by closing Minetest for the first time.
2017-08-18 10:47:40 +02:00
- A specific file can be specified on the command line:
`--config <path-to-file>`
- A run-in-place build will look for the configuration file in
`location_of_exe/../minetest.conf` and also `location_of_exe/../../minetest.conf`
2019-07-01 20:46:28 +02:00
Command-line options
--------------------
2018-06-22 14:00:49 +02:00
- Use `--help`
2017-08-18 10:47:40 +02:00
Compiling
---------
### Compiling on GNU/Linux
2017-11-17 18:50:08 +01:00
#### Dependencies
| Dependency | Version | Commentary |
|------------|---------|------------|
| GCC | 4.9+ | Can be replaced with Clang 3.4+ |
2021-04-20 19:50:34 +02:00
| CMake | 3.5+ | |
2021-04-23 21:37:45 +02:00
| IrrlichtMt | - | Custom version of Irrlicht, see https://github.com/minetest/irrlicht |
2017-11-17 18:50:08 +01:00
| SQLite3 | 3.0+ | |
| LuaJIT | 2.0+ | Bundled Lua 5.1 is used if not present |
| GMP | 5.0.0+ | Bundled mini-GMP is used if not present |
| JsonCPP | 1.0.0+ | Bundled JsonCPP is used if not present |
2019-07-01 20:46:28 +02:00
For Debian/Ubuntu users:
2017-08-18 10:47:40 +02:00
2021-02-18 14:50:47 +01:00
sudo apt install g++ make libc6-dev cmake libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
2017-08-18 10:47:40 +02:00
For Fedora users:
2021-02-18 14:50:47 +01:00
sudo dnf install make automake gcc gcc-c++ kernel-devel cmake libcurl-devel openal-soft-devel libvorbis-devel libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel spatialindex-devel
2019-10-01 19:09:59 +02:00
For Arch users:
2021-02-18 14:50:47 +01:00
sudo pacman -S base-devel libcurl-gnutls cmake libxxf86vm libpng sqlite libogg libvorbis openal freetype2 jsoncpp gmp luajit leveldb ncurses
2017-08-18 10:47:40 +02:00
2019-12-15 17:10:25 +01:00
For Alpine users:
2021-02-18 14:50:47 +01:00
sudo apk add build-base cmake libpng-dev jpeg-dev libxxf86vm-dev mesa-dev sqlite-dev libogg-dev libvorbis-dev openal-soft-dev curl-dev freetype-dev zlib-dev gmp-dev jsoncpp-dev luajit-dev
2019-12-15 17:10:25 +01:00
2017-11-17 18:50:08 +01:00
#### Download
2018-10-06 04:43:26 +02:00
You can install Git for easily keeping your copy up to date.
2019-03-02 04:44:35 +01:00
If you don’ t want Git, read below on how to get the source without Git.
2018-10-06 04:43:26 +02:00
This is an example for installing Git on Debian/Ubuntu:
2017-08-18 10:47:40 +02:00
2018-07-25 19:07:22 +02:00
sudo apt install git
2017-08-18 10:47:40 +02:00
For Fedora users:
2018-06-30 12:01:56 +02:00
sudo dnf install git
2017-08-18 10:47:40 +02:00
2018-10-06 04:43:26 +02:00
Download source (this is the URL to the latest of source repository, which might not work at all times) using Git:
2017-08-18 10:47:40 +02:00
2018-06-30 12:01:56 +02:00
git clone --depth 1 https://github.com/minetest/minetest.git
cd minetest
2017-08-18 10:47:40 +02:00
2020-05-26 00:17:52 +02:00
Download minetest_game (otherwise only the "Development Test" game is available) using Git:
2017-08-18 10:47:40 +02:00
2018-06-30 12:01:56 +02:00
git clone --depth 1 https://github.com/minetest/minetest_game.git games/minetest_game
2017-08-18 10:47:40 +02:00
2018-10-06 04:43:26 +02:00
Download source, without using Git:
2017-08-18 10:47:40 +02:00
2018-06-30 12:01:56 +02:00
wget https://github.com/minetest/minetest/archive/master.tar.gz
tar xf master.tar.gz
cd minetest-master
2017-08-18 10:47:40 +02:00
2018-10-06 04:43:26 +02:00
Download minetest_game, without using Git:
2017-08-18 10:47:40 +02:00
2018-06-30 12:01:56 +02:00
cd games/
wget https://github.com/minetest/minetest_game/archive/master.tar.gz
tar xf master.tar.gz
mv minetest_game-master minetest_game
cd ..
2017-08-18 10:47:40 +02:00
2017-11-17 18:50:08 +01:00
#### Build
2017-08-18 10:47:40 +02:00
Build a version that runs directly from the source directory:
2018-06-30 12:01:56 +02:00
cmake . -DRUN_IN_PLACE=TRUE
2019-07-30 09:36:03 +02:00
make -j$(nproc)
2017-08-18 10:47:40 +02:00
Run it:
2018-06-30 12:01:56 +02:00
./bin/minetest
2017-08-18 10:47:40 +02:00
2019-07-01 20:46:28 +02:00
- Use `cmake . -LH` to see all CMake options and their current state.
2017-08-18 10:47:40 +02:00
- If you want to install it system-wide (or are making a distribution package),
2019-07-01 20:46:28 +02:00
you will want to use `-DRUN_IN_PLACE=FALSE` .
- You can build a bare server by specifying `-DBUILD_SERVER=TRUE` .
- You can disable the client build by specifying `-DBUILD_CLIENT=FALSE` .
- You can select between Release and Debug build by `-DCMAKE_BUILD_TYPE=<Debug or Release>` .
- Debug build is slower, but gives much more useful output in a debugger.
2021-04-23 21:37:45 +02:00
- If you build a bare server you don't need to have the Irrlicht or IrrlichtMt library installed.
2021-02-18 14:50:47 +01:00
- In that case use `-DIRRLICHT_INCLUDE_DIR=/some/where/irrlicht/include` .
2017-08-18 10:47:40 +02:00
### CMake options
2018-07-29 10:21:09 +02:00
General options and their default values:
BUILD_CLIENT=TRUE - Build Minetest client
BUILD_SERVER=FALSE - Build Minetest server
2020-04-16 20:43:49 +02:00
BUILD_UNITTESTS=TRUE - Build unittest sources
2018-07-29 10:21:09 +02:00
CMAKE_BUILD_TYPE=Release - Type of build (Release vs. Debug)
Release - Release build
Debug - Debug build
SemiDebug - Partially optimized debug build
2018-10-06 04:43:26 +02:00
RelWithDebInfo - Release build with debug information
2018-07-29 10:21:09 +02:00
MinSizeRel - Release build with -Os passed to compiler to make executable as small as possible
ENABLE_CURL=ON - Build with cURL; Enables use of online mod repo, public serverlist and remote media fetching via http
ENABLE_CURSES=ON - Build with (n)curses; Enables a server side terminal (command line option: --terminal)
ENABLE_FREETYPE=ON - Build with FreeType2; Allows using TTF fonts
ENABLE_GETTEXT=ON - Build with Gettext; Allows using translations
2021-04-23 21:37:45 +02:00
ENABLE_GLES=OFF - Build for OpenGL ES instead of OpenGL (requires support by IrrlichtMt)
2018-07-29 10:21:09 +02:00
ENABLE_LEVELDB=ON - Build with LevelDB; Enables use of LevelDB map backend
ENABLE_POSTGRESQL=ON - Build with libpq; Enables use of PostgreSQL map backend (PostgreSQL 9.5 or greater recommended)
ENABLE_REDIS=ON - Build with libhiredis; Enables use of Redis map backend
ENABLE_SPATIAL=ON - Build with LibSpatial; Speeds up AreaStores
2018-10-06 04:43:26 +02:00
ENABLE_SOUND=ON - Build with OpenAL, libogg & libvorbis; in-game sounds
2018-07-29 10:21:09 +02:00
ENABLE_LUAJIT=ON - Build with LuaJIT (much faster than non-JIT Lua)
2020-04-27 08:31:37 +02:00
ENABLE_PROMETHEUS=OFF - Build with Prometheus metrics exporter (listens on tcp/30000 by default)
2018-07-29 10:21:09 +02:00
ENABLE_SYSTEM_GMP=ON - Use GMP from system (much faster than bundled mini-gmp)
2021-03-05 16:11:55 +01:00
ENABLE_SYSTEM_JSONCPP=ON - Use JsonCPP from system
2018-09-22 20:54:43 +02:00
OPENGL_GL_PREFERENCE=LEGACY - Linux client build only; See CMake Policy CMP0072 for reference
2018-07-29 10:21:09 +02:00
RUN_IN_PLACE=FALSE - Create a portable install (worlds, settings etc. in current directory)
USE_GPROF=FALSE - Enable profiling using GProf
VERSION_EXTRA= - Text to append to version (e.g. VERSION_EXTRA=foobar -> Minetest 0.4.9-foobar)
2017-08-18 10:47:40 +02:00
Library specific options:
2019-03-02 04:44:35 +01:00
2017-08-18 10:47:40 +02:00
CURL_DLL - Only if building with cURL on Windows; path to libcurl.dll
CURL_INCLUDE_DIR - Only if building with cURL; directory where curl.h is located
CURL_LIBRARY - Only if building with cURL; path to libcurl.a/libcurl.so/libcurl.lib
EGL_INCLUDE_DIR - Only if building with GLES; directory that contains egl.h
EGL_LIBRARY - Only if building with GLES; path to libEGL.a/libEGL.so
2018-10-06 04:43:26 +02:00
FREETYPE_INCLUDE_DIR_freetype2 - Only if building with FreeType 2; directory that contains an freetype directory with files such as ftimage.h in it
FREETYPE_INCLUDE_DIR_ft2build - Only if building with FreeType 2; directory that contains ft2build.h
FREETYPE_LIBRARY - Only if building with FreeType 2; path to libfreetype.a/libfreetype.so/freetype.lib
FREETYPE_DLL - Only if building with FreeType 2 on Windows; path to libfreetype.dll
2021-03-10 14:48:53 +01:00
GETTEXT_DLL - Only when building with gettext on Windows; paths to libintl + libiconv DLLs
2018-10-06 04:43:26 +02:00
GETTEXT_INCLUDE_DIR - Only when building with gettext; directory that contains iconv.h
GETTEXT_LIBRARY - Only when building with gettext on Windows; path to libintl.dll.a
GETTEXT_MSGFMT - Only when building with gettext; path to msgfmt/msgfmt.exe
2021-03-25 15:09:49 +01:00
IRRLICHT_DLL - Only on Windows; path to IrrlichtMt.dll
2017-08-18 10:47:40 +02:00
IRRLICHT_INCLUDE_DIR - Directory that contains IrrCompileConfig.h
2021-03-25 15:09:49 +01:00
IRRLICHT_LIBRARY - Path to libIrrlichtMt.a/libIrrlichtMt.so/libIrrlichtMt.dll.a/IrrlichtMt.lib
2017-08-18 10:47:40 +02:00
LEVELDB_INCLUDE_DIR - Only when building with LevelDB; directory that contains db.h
LEVELDB_LIBRARY - Only when building with LevelDB; path to libleveldb.a/libleveldb.so/libleveldb.dll.a
LEVELDB_DLL - Only when building with LevelDB on Windows; path to libleveldb.dll
PostgreSQL_INCLUDE_DIR - Only when building with PostgreSQL; directory that contains libpq-fe.h
2019-04-07 18:45:25 +02:00
PostgreSQL_LIBRARY - Only when building with PostgreSQL; path to libpq.a/libpq.so/libpq.lib
2017-08-18 10:47:40 +02:00
REDIS_INCLUDE_DIR - Only when building with Redis; directory that contains hiredis.h
REDIS_LIBRARY - Only when building with Redis; path to libhiredis.a/libhiredis.so
SPATIAL_INCLUDE_DIR - Only when building with LibSpatial; directory that contains spatialindex/SpatialIndex.h
SPATIAL_LIBRARY - Only when building with LibSpatial; path to libspatialindex_c.so/spatialindex-32.lib
LUA_INCLUDE_DIR - Only if you want to use LuaJIT; directory where luajit.h is located
LUA_LIBRARY - Only if you want to use LuaJIT; path to libluajit.a/libluajit.so
OGG_DLL - Only if building with sound on Windows; path to libogg.dll
OGG_INCLUDE_DIR - Only if building with sound; directory that contains an ogg directory which contains ogg.h
OGG_LIBRARY - Only if building with sound; path to libogg.a/libogg.so/libogg.dll.a
OPENAL_DLL - Only if building with sound on Windows; path to OpenAL32.dll
OPENAL_INCLUDE_DIR - Only if building with sound; directory where al.h is located
OPENAL_LIBRARY - Only if building with sound; path to libopenal.a/libopenal.so/OpenAL32.lib
OPENGLES2_INCLUDE_DIR - Only if building with GLES; directory that contains gl2.h
OPENGLES2_LIBRARY - Only if building with GLES; path to libGLESv2.a/libGLESv2.so
SQLITE3_INCLUDE_DIR - Directory that contains sqlite3.h
SQLITE3_LIBRARY - Path to libsqlite3.a/libsqlite3.so/sqlite3.lib
VORBISFILE_LIBRARY - Only if building with sound; path to libvorbisfile.a/libvorbisfile.so/libvorbisfile.dll.a
2021-03-10 14:48:53 +01:00
VORBIS_DLL - Only if building with sound on Windows; paths to vorbis DLLs
2017-08-18 10:47:40 +02:00
VORBIS_INCLUDE_DIR - Only if building with sound; directory that contains a directory vorbis with vorbisenc.h inside
VORBIS_LIBRARY - Only if building with sound; path to libvorbis.a/libvorbis.so/libvorbis.dll.a
XXF86VM_LIBRARY - Only on Linux; path to libXXf86vm.a/libXXf86vm.so
ZLIB_DLL - Only on Windows; path to zlib1.dll
ZLIB_INCLUDE_DIR - Directory that contains zlib.h
2019-06-10 03:56:55 +02:00
ZLIB_LIBRARY - Path to libz.a/libz.so/zlib.lib
2017-08-18 10:47:40 +02:00
### Compiling on Windows
2019-06-10 03:56:55 +02:00
### Requirements
2019-07-01 20:46:28 +02:00
- [Visual Studio 2015 or newer ](https://visualstudio.microsoft.com )
- [CMake ](https://cmake.org/download/ )
- [vcpkg ](https://github.com/Microsoft/vcpkg )
- [Git ](https://git-scm.com/downloads )
2019-06-10 03:56:55 +02:00
2019-07-01 20:46:28 +02:00
### Compiling and installing the dependencies
2019-06-10 03:56:55 +02:00
It is highly recommended to use vcpkg as package manager.
#### a) Using vcpkg to install dependencies
2019-07-01 20:46:28 +02:00
After you successfully built vcpkg you can easily install the required libraries:
2019-06-10 03:56:55 +02:00
```powershell
2021-02-18 14:50:47 +01:00
vcpkg install zlib curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit gmp jsoncpp --triplet x64-windows
2019-06-10 03:56:55 +02:00
```
2021-02-18 14:50:47 +01:00
- **Note that you currently need to build irrlicht on your own**
2019-07-01 20:46:28 +02:00
- `curl` is optional, but required to read the serverlist, `curl[winssl]` is required to use the content store.
- `openal-soft` , `libvorbis` and `libogg` are optional, but required to use sound.
- `freetype` is optional, it allows true-type font rendering.
- `luajit` is optional, it replaces the integrated Lua interpreter with a faster just-in-time interpreter.
2020-09-29 19:39:53 +02:00
- `gmp` and `jsoncpp` are optional, otherwise the bundled versions will be compiled
2019-06-10 03:56:55 +02:00
2019-07-01 20:46:28 +02:00
There are other optional libraries, but they are not tested if they can build and link correctly.
2019-06-10 03:56:55 +02:00
2019-07-01 20:46:28 +02:00
Use `--triplet` to specify the target triplet, e.g. `x64-windows` or `x86-windows` .
2019-06-10 03:56:55 +02:00
#### b) Compile the dependencies on your own
This is outdated and not recommended. Follow the instructions on https://dev.minetest.net/Build_Win32_Minetest_including_all_required_libraries#VS2012_Build
### Compile Minetest
2019-07-01 20:46:28 +02:00
#### a) Using the vcpkg toolchain and CMake GUI
2019-06-10 03:56:55 +02:00
1. Start up the CMake GUI
2019-07-01 20:46:28 +02:00
2. Select **Browse Source...** and select DIR/minetest
3. Select **Browse Build...** and select DIR/minetest-build
4. Select **Configure**
2019-06-10 03:56:55 +02:00
5. Choose the right visual Studio version and target platform. It has to match the version of the installed dependencies
2019-07-01 20:46:28 +02:00
6. Choose **Specify toolchain file for cross-compiling**
7. Click **Next**
2019-06-10 03:56:55 +02:00
8. Select the vcpkg toolchain file e.g. `D:/vcpkg/scripts/buildsystems/vcpkg.cmake`
9. Click Finish
10. Wait until cmake have generated the cash file
2019-07-01 20:46:28 +02:00
11. If there are any errors, solve them and hit **Configure**
12. Click **Generate**
13. Click **Open Project**
2019-06-10 03:56:55 +02:00
14. Compile Minetest inside Visual studio.
#### b) Using the vcpkg toolchain and the commandline
2019-07-01 20:46:28 +02:00
Run the following script in PowerShell:
2019-06-10 03:56:55 +02:00
```powershell
2021-03-05 16:11:55 +01:00
cmake . -G"Visual Studio 15 2017 Win64" -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GETTEXT=OFF -DENABLE_CURSES=OFF
2019-06-10 03:56:55 +02:00
cmake --build . --config Release
```
Make sure that the right compiler is selected and the path to the vcpkg toolchain is correct.
2019-07-01 20:46:28 +02:00
#### c) Using your own compiled libraries
2019-06-10 03:56:55 +02:00
**This is outdated and not recommended**
Follow the instructions on https://dev.minetest.net/Build_Win32_Minetest_including_all_required_libraries#VS2012_Build
2017-08-20 17:20:11 +02:00
2019-07-01 20:46:28 +02:00
### Windows Installer using WiX Toolset
2018-10-26 21:37:51 +02:00
Requirements:
2019-07-01 20:46:28 +02:00
* [Visual Studio 2017 ](https://visualstudio.microsoft.com/ )
* [WiX Toolset ](https://wixtoolset.org/ )
2018-10-26 21:37:51 +02:00
2019-07-01 20:46:28 +02:00
In the Visual Studio 2017 Installer select **Optional Features -> WiX Toolset** .
2018-10-26 21:37:51 +02:00
2019-07-01 20:46:28 +02:00
Build the binaries as described above, but make sure you unselect `RUN_IN_PLACE` .
2018-10-26 21:37:51 +02:00
2019-07-01 20:46:28 +02:00
Open the generated project file with Visual Studio. Right-click **Package** and choose **Generate** .
2018-10-26 21:37:51 +02:00
It may take some minutes to generate the installer.
2018-12-13 20:19:19 +01:00
Docker
------
2019-07-01 20:46:28 +02:00
We provide Minetest server Docker images using the GitLab mirror registry.
2018-12-13 20:19:19 +01:00
Images are built on each commit and available using the following tag scheme:
* `registry.gitlab.com/minetest/minetest/server:latest` (latest build)
* `registry.gitlab.com/minetest/minetest/server:<branch/tag>` (current branch or current tag)
* `registry.gitlab.com/minetest/minetest/server:<commit-id>` (current commit id)
2019-07-01 20:46:28 +02:00
If you want to test it on a Docker server you can easily run:
2018-12-13 20:19:19 +01:00
sudo docker run registry.gitlab.com/minetest/minetest/server:< docker tag >
2019-07-01 20:46:28 +02:00
If you want to use it in a production environment you should use volumes bound to the Docker host
2018-12-13 20:19:19 +01:00
to persist data and modify the configuration:
sudo docker create -v /home/minetest/data/:/var/lib/minetest/ -v /home/minetest/conf/:/etc/minetest/ registry.gitlab.com/minetest/minetest/server:master
Data will be written to `/home/minetest/data` on the host, and configuration will be read from `/home/minetest/conf/minetest.conf` .
2019-07-01 20:46:28 +02:00
**Note:** If you don't understand the previous commands please read the official Docker documentation before use.
2018-12-13 20:19:19 +01:00
2019-07-01 20:46:28 +02:00
You can also host your Minetest server inside a Kubernetes cluster. See our example implementation in [`misc/kubernetes.yml` ](misc/kubernetes.yml ).
2018-12-15 15:12:40 +01:00
2018-12-13 20:19:19 +01:00
2017-08-20 17:20:11 +02:00
Version scheme
--------------
2018-06-22 14:00:49 +02:00
We use `major.minor.patch` since 5.0.0-dev. Prior to that we used `0.major.minor` .
2017-08-20 17:20:11 +02:00
2018-06-20 14:11:13 +02:00
- Major is incremented when the release contains breaking changes, all other
numbers are set to 0.
- Minor is incremented when the release contains new non-breaking features,
patch is set to 0.
- Patch is incremented when the release only contains bugfixes and very
minor/trivial features considered necessary.
2017-08-20 17:20:11 +02:00
2019-03-02 04:44:35 +01:00
Since 5.0.0-dev and 0.4.17-dev, the dev notation refers to the next release,
i.e.: 5.0.0-dev is the development version leading to 5.0.0.
2018-06-22 14:00:49 +02:00
Prior to that we used `previous_version-dev` .