-* This section is outdated. In addition to what is described here:
- * In addition to minetest, you need to download [minetest_game](https://github.com/minetest/minetest_game).
- * If you wish to have sound support, you need libogg, libvorbis and libopenal
-
-* You need:
- * CMake:
- http://www.cmake.org/cmake/resources/software.html
- * A compiler
- * MinGW: http://www.mingw.org/
- * or Visual Studio: http://msdn.microsoft.com/en-us/vstudio/default
- * Irrlicht SDK 1.7:
- http://irrlicht.sourceforge.net/downloads.html
- * Zlib headers (zlib125.zip)
- http://www.winimage.com/zLibDll/index.html
- * Zlib library (zlibwapi.lib and zlibwapi.dll from zlib125dll.zip):
- http://www.winimage.com/zLibDll/index.html
- * SQLite3 headers and library
- https://www.sqlite.org/download.html
- * Optional: gettext library and tools:
- http://gnuwin32.sourceforge.net/downlinks/gettext.php
- * This is used for other UI languages. Feel free to leave it out.
- * And, of course, Minetest:
- http://minetest.net/download
-* Steps:
- * Select a directory called DIR hereafter in which you will operate.
- * Make sure you have CMake and a compiler installed.
- * Download all the other stuff to DIR and extract them into there.
- ("extract here", not "extract to packagename/")
- * NOTE: zlib125dll.zip needs to be extracted into zlib125dll
- * NOTE: You need to extract sqlite3.h & sqlite3ext.h from sqlite3 source
- and sqlite3.dll & sqlite3.def from sqlite3 precompiled binaries
- into "sqlite3" directory, and generate sqlite3.lib using command
- "LIB /DEF:sqlite3.def /OUT:sqlite3.lib"
- * All those packages contain a nice base directory in them, which
- should end up being the direct subdirectories of DIR.
- * You will end up with a directory structure like this (+=dir, -=file):
- -----------------
- + DIR
- * zlib-1.2.5.tar.gz
- * zlib125dll.zip
- * irrlicht-1.8.3.zip
- * sqlite-amalgamation-3130000.zip (SQLite3 headers)
- * sqlite-dll-win32-x86-3130000.zip (SQLite3 library for 32bit system)
- * 110214175330.zip (or whatever, this is the minetest source)
- + zlib-1.2.5
- * zlib.h
- + win32
- ...
- + zlib125dll
- * readme.txt
- + dll32
- ...
- + irrlicht-1.8.3
- + lib
- + include
- ...
- + sqlite3
- sqlite3.h
- sqlite3ext.h
- sqlite3.lib
- sqlite3.dll
- + gettext (optional)
- +bin
- +include
- +lib
- + minetest
- + src
- + doc
- * CMakeLists.txt
- ...
- -----------------
- * Start up the CMake GUI
- * Select "Browse Source..." and select DIR/minetest
- * Now, if using MSVC:
- * Select "Browse Build..." and select DIR/minetest-build
- * Else if using MinGW:
- * Select "Browse Build..." and select DIR/minetest
- * Select "Configure"
- * Select your compiler
- * It will warn about missing stuff, ignore that at this point. (later don't)
- * Make sure the configuration is as follows
- (note that the versions may differ for you):
-
- BUILD_CLIENT [X]
- BUILD_SERVER [ ]
- CMAKE_BUILD_TYPE Release
- CMAKE_INSTALL_PREFIX DIR/minetest-install
- IRRLICHT_SOURCE_DIR DIR/irrlicht-1.8.3
- RUN_IN_PLACE [X]
- WARN_ALL [ ]
- ZLIB_DLL DIR/zlib125dll/dll32/zlibwapi.dll
- ZLIB_INCLUDE_DIR DIR/zlib-1.2.5
- ZLIB_LIBRARIES DIR/zlib125dll/dll32/zlibwapi.lib
- GETTEXT_BIN_DIR DIR/gettext/bin
- GETTEXT_INCLUDE_DIR DIR/gettext/include
- GETTEXT_LIBRARIES DIR/gettext/lib/intl.lib
- GETTEXT_MSGFMT DIR/gettext/bin/msgfmt
-
- * If CMake complains it couldn't find SQLITE3, choose "Advanced" box on the
- right top corner, then specify the location of SQLITE3_INCLUDE_DIR and
- SQLITE3_LIBRARY manually.
- * If you want to build 64-bit minetest, you will need to build 64-bit version
- of irrlicht engine manually, as only 32-bit pre-built library is provided.
- * Hit "Configure"
- * Hit "Configure" once again 8)
- * If something is still coloured red, you have a problem.
- * Hit "Generate"
- If using MSVC:
- * Open the generated minetest.sln
- * The project defaults to the "Debug" configuration. Make very sure to
- select "Release", unless you want to debug some stuff (it's slower
- and might not even work at all)
- * Build the ALL_BUILD project
- * Build the INSTALL project
- * You should now have a working game with the executable in
- DIR/minetest-install/bin/minetest.exe
- * Additionally you may create a zip package by building the PACKAGE
- project.
- If using MinGW:
- * Using the command line, browse to the build directory and run 'make'
- (or mingw32-make or whatever it happens to be)
- * You may need to copy some of the downloaded DLLs into bin/, see what
- running the produced executable tells you it doesn't have.
- * You should now have a working game with the executable in
- DIR/minetest/bin/minetest.exe
-
-### Bat script to build Windows releases of Minetest
-
-This is how we build Windows releases.
-
- set sourcedir=%CD%
- set installpath="C:\tmp\minetest_install"
- set irrlichtpath="C:\tmp\irrlicht-1.7.2"
-
- set builddir=%sourcedir%\bvc10
- mkdir %builddir%
- pushd %builddir%
- cmake %sourcedir% -G "Visual Studio 10" -DIRRLICHT_SOURCE_DIR=%irrlichtpath% -DRUN_IN_PLACE=TRUE -DCMAKE_INSTALL_PREFIX=%installpath%
- if %errorlevel% neq 0 goto fail
- "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" ALL_BUILD.vcxproj /p:Configuration=Release
- if %errorlevel% neq 0 goto fail
- "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" INSTALL.vcxproj /p:Configuration=Release
- if %errorlevel% neq 0 goto fail
- "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" PACKAGE.vcxproj /p:Configuration=Release
- if %errorlevel% neq 0 goto fail
- popd
- echo Finished.
- exit /b 0
-
- :fail
- popd
- echo Failed.
- exit /b 1
+### Requirements
+
+- [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)
+
+### Compiling and installing the dependencies
+
+It is highly recommended to use vcpkg as package manager.
+
+#### a) Using vcpkg to install dependencies
+
+After you successfully built vcpkg you can easily install the required libraries:
+```powershell
+vcpkg install zlib curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit gmp jsoncpp --triplet x64-windows
+```
+
+- **Don't forget about IrrlichtMt.** The easiest way is to clone it to `lib/irrlichtmt` as described in the Linux section.
+- `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.
+- `gmp` and `jsoncpp` are optional, otherwise the bundled versions will be compiled
+
+There are other optional libraries, but they are not tested if they can build and link correctly.
+
+Use `--triplet` to specify the target triplet, e.g. `x64-windows` or `x86-windows`.
+
+#### 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
+
+#### a) Using the vcpkg toolchain and CMake GUI
+1. Start up the CMake GUI
+2. Select **Browse Source...** and select DIR/minetest
+3. Select **Browse Build...** and select DIR/minetest-build
+4. Select **Configure**
+5. Choose the right visual Studio version and target platform. It has to match the version of the installed dependencies
+6. Choose **Specify toolchain file for cross-compiling**
+7. Click **Next**
+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
+11. If there are any errors, solve them and hit **Configure**
+12. Click **Generate**
+13. Click **Open Project**
+14. Compile Minetest inside Visual studio.
+
+#### b) Using the vcpkg toolchain and the commandline
+
+Run the following script in PowerShell:
+
+```powershell
+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
+cmake --build . --config Release
+```
+Make sure that the right compiler is selected and the path to the vcpkg toolchain is correct.
+
+#### c) Using your own compiled libraries
+
+**This is outdated and not recommended**
+
+Follow the instructions on https://dev.minetest.net/Build_Win32_Minetest_including_all_required_libraries#VS2012_Build
+
+### Windows Installer using WiX Toolset
+
+Requirements:
+* [Visual Studio 2017](https://visualstudio.microsoft.com/)
+* [WiX Toolset](https://wixtoolset.org/)
+
+In the Visual Studio 2017 Installer select **Optional Features -> WiX Toolset**.
+
+Build the binaries as described above, but make sure you unselect `RUN_IN_PLACE`.
+
+Open the generated project file with Visual Studio. Right-click **Package** and choose **Generate**.
+It may take some minutes to generate the installer.
+
+
+Docker
+------
+We provide Minetest server Docker images using the GitLab mirror registry.
+
+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)
+
+If you want to test it on a Docker server you can easily run:
+
+ sudo docker run registry.gitlab.com/minetest/minetest/server:<docker tag>
+
+If you want to use it in a production environment you should use volumes bound to the Docker host
+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`.
+
+**Note:** If you don't understand the previous commands please read the official Docker documentation before use.
+
+You can also host your Minetest server inside a Kubernetes cluster. See our example implementation in [`misc/kubernetes.yml`](misc/kubernetes.yml).
+