Difference between revisions of "Setting up a server/Debian"

From Luanti Wiki
Jump to navigation Jump to search
(Replaced content with "Please see [https://dev.luanti.org/setting-up-a-server/ Setting up a server] on the Luanti Developer Wiki. For setting up a Luanti server according to Debian, see [https:...")
Tag: Replaced
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
These instructions have been tested in Debian Jessie (“Testing” as of January 2015) which includes a <code>minetest-server</code> package.
+
Please see [https://dev.luanti.org/setting-up-a-server/ Setting up a server] on the Luanti Developer Wiki.
  
A simple Minetest [[server]] can be started in any Debian (Ubuntu, Linux Mint or derivative distribution) that has the <code>minetest</code> package by going to its “Server” tab, however such a game only remains available for the duration of the host's playing session.
+
For setting up a Luanti server according to Debian, see [https://wiki.debian.org/Games/Minetest#Setting_up_a_server this page on the Debian Wiki].
 
 
This guide is aimed at providing a more permanent, minimal server environment setup without a graphical desktop environment.
 
 
 
== Installation and initial preparation ==
 
 
 
''Commands prefixed with '''$''' are to be run with limited privileges, whereas commands prefixed with '''#''' should be used with administrator privileges (usually using <code>sudo</code>).''
 
 
 
=== Preparing a Debian 7 virtual machine (optional) ===
 
 
 
If you wish to install Minetest in its own dedicated environment, it's an interesting option to do so on a KVM host, as a dedicated virtual machine.
 
 
 
This requires previous installation and configuration of KVM and the '''virtinst''' package on your host system. You can also configure a network bridge so your LAN will have direct access to the server on the same subnet.
 
 
 
The following command will prepare a virtual machine named "dungeon" in an existing KVM host:
 
 
 
sudo virt-install -n dungeon -r 1024 --disk path=/var/lib/libvirt/images/dungeon.img,bus=virtio,size=10 -l http://ftp.ca.debian.org/debian/dists/wheezy/main/installer-i386/ --accelerate -b br0,model=virtio --connect=qemu:///system --vnc --noautoconsole -v
 
 
 
Once installed, you can access the console via VNC.
 
 
 
== Installing the Minetest server program ==
 
 
 
Install the <code>minetest-server</code> package:
 
 
 
# apt-get install minetest-server
 
 
 
The current Debian package in Jessie does not automatically setup the Minetest server to start as a service. It can run under the <code>root</code> user but it may be preferrable to create a user to run it:
 
 
 
# adduser minetest
 
 
 
Since version 0.4.10+repack-3 a manual configuration of Debian's minetest-server package is no longer required. Please check out the section about systemd and sysV-init below.
 
 
 
Before setting up automatic startup at boot, consider manually running the server to determine the best command line arguments.
 
 
 
== Manually starting the server ==
 
 
 
The server can be started manually by invoking its command:
 
 
 
$ minetestserver --info
 
 
 
The last few lines of terminal output should be similar to this:
 
 
 
03:33:25: INFO[main]: Server: Loading environment metadata
 
03:33:25: INFO[main]: Server: Loading players
 
03:33:25: INFO[main]: Starting server on port 30000...
 
03:33:25: ACTION[main]:        .__              __                  __ 
 
03:33:25: ACTION[main]:  _____ |__| ____  _____/  |_  ____  _______/  |_
 
03:33:25: ACTION[main]:  /    \|  |/    \_/ __ \  __\/ __ \ /  ___/\  __\
 
03:33:25: ACTION[main]: |  Y Y  \  |  |  \  ___/|  | \  ___/ \___ \  |  | 
 
03:33:25: ACTION[main]: |__|_|  /__|___|  /\___  >__|  \___  >____  > |__| 
 
03:33:25: ACTION[main]:      \/        \/    \/          \/    \/       
 
03:33:25: ACTION[main]: World at [/home/minetest/.minetest/worlds/world]
 
03:33:25: ACTION[main]: Server for gameid="minetest" listening on port 30000.
 
03:33:25: INFO[ServerThread]: Server creating detached inventory "creative"
 
03:33:28: INFO[ServerThread]: ServerMap: SQLite3 database opened
 
 
 
== Manually stopping the server ==
 
 
 
To stop the server, press <kbd>Ctrl + C</kbd>. '''Avoid killing it''' unless necessary, since that may cause world corruption.
 
 
 
The last few lines of terminal output should be similar to this:
 
 
 
03:34:52: INFO: sigint_handler(): Ctrl-C pressed, shutting down.
 
03:34:52: INFO[main]: Dedicated server quitting
 
03:34:52: INFO[main]: Server destructing
 
03:34:52: INFO[main]: Server: Saving players
 
03:34:52: INFO[main]: Server: Saving environment metadata
 
03:34:52: INFO[main]: Server: Stopping and waiting threads
 
03:34:52: INFO[main]: Server: Threads stopped
 
03:34:52: INFO[main]: ServerMap: Saved map to /home/minetest/.minetest/worlds/world
 
03:34:52: INFO[main]: RollbackManager::~RollbackManager()
 
03:34:52: INFO[main]: RollbackManager::flush()
 
03:34:52: INFO[main]: BanManager: saving to /home/minetest/.minetest/worlds/world/ipban.txt
 
03:34:52: INFO[main]: Server: Deinitializing scripting
 
 
 
== Setup automatic startup at boot ==
 
 
 
=== With a boot-time scheduled command (only needed for version 0.4.10+repack-3 and below) ===
 
 
 
IMPORTANT: this manual setup of automatic minetest server at boot is not necessary since 0.4.10+repack-3. This improvement is available when installing the package from Debian experimental repositories at the time of this writing.
 
 
 
Once you're satisfied with command line arguments and having tested the server works, you can setup automatic startup at boot:
 
# Login as the user previously created. This can be a non-privileged user.
 
# Add the <code>minetestserver</code> command as determined after testing with manual server startup to <code>crontab</code>
 
## Invoke the <code>crontab</code> editor: <pre>$ crontab -e</pre>
 
## Add your command to be executed at reboot to the very end of the file, for example: <pre>@reboot /usr/games/minetestserver --info --worldname MyWorld</pre>
 
# Save the file (Ctrl-X if using the <code>nano</code> editor)
 
 
 
== Running the Minetest server as a systemd service or sysV-init daemon ==
 
 
 
Since version 0.4.10+repack-3 the Debian minetest-server package automatically creates a system-wide, unprivileged user called '''Debian-minetest'''. The home directory of this user is ''/var/games/minetest-server''. You can do all the configuration in ''/etc/minetest/minetest.conf''. All log files are written to ''/var/log/minetest''.
 
 
 
=== systemd ===
 
 
 
Start the server with
 
 
 
# systemctl start minetest-server
 
 
 
Stop the server with
 
 
 
# systemctl stop minetest-server
 
 
 
You can disable the server on boot with
 
 
 
# systemctl disable minetest-server
 
 
 
You can start multiple servers with different configurations by using systemd's template unit feature.
 
 
 
# systemctl start minetest-server@pvp.service
 
 
 
Provided that you also saved the configuration file for this server in <code>/etc/minetest/pvp.conf</code>, the server will now use this second configuration and log everything to <code>/var/log/minetest/pvp.log</code>.
 
Simply replace <code>pvp</code> after @ with your desired name.
 
 
 
=== sysV-init ===
 
 
 
If systemd is not your default init system and you still prefer to use the old sysV-init style configuration, you can use the service command to start or stop your server.
 
 
 
# service minetest-server start
 
 
 
or:
 
 
 
#service minetest-server stop
 
 
 
=== Further information ===
 
 
 
* For a detailed explanation of the server configuration file, see the [http://github.com/minetest/minetest/blob/master/minetest.conf.example minetest.conf] page.
 
* Use a different [[Database backends|database backend]] for your world.
 
* [http://forum.minetest.net/viewtopic.php?f=3&t=3837 One-line script for installing/compiling Minetest Git, for Debian / Ubuntu / Mint]
 
* [http://forum.minetest.net/viewtopic.php?f=10&t=9588 Guide to create fast minetest server on Debian]
 
* [[Server commands]] page for a list of useful commands.
 
* [[Itemstrings|Item strings]] for the itemstrings for use with the <code>/give</code> and <code>/giveme</code> commands.
 
* See the [[Privileges]] page for detailed information on the privilege system.
 
 
 
== A few tips ==
 
 
 
* The <code>.minetest</code> directory contains game data (<code>worlds, config, debug.txt</code>).
 
* File structure with the folders Minetest adds after some usage as client and server, as well as the positions (…) that costum made content goes could look like this.
 
 
 
minetest/
 
├── bin/
 
├── builtin/
 
├── cache/
 
│  ├── media/
 
│  └── tmp/
 
├── client/
 
│  ├── serverlist/
 
│  └── shaders/
 
│      ├── …
 
├── doc/
 
├── fonts/
 
├── games/
 
│  ├── minetest_game/
 
│  ├── minimal/
 
│  └── … (installed extra games)
 
├── locale/ (lots of language folders)
 
├── mods/
 
│  └── … (installed extra mods and modpacks)
 
├── textures/
 
│  ├── base/
 
│  │  └── pack/
 
│  └── … (installed extra texturepacks)
 
└── worlds/
 
    └── … (saved worlds. Some with exclusive world mods)
 
 
 
 
 
[[Category:Server]]
 
[[Category:Tutorials]]
 

Latest revision as of 16:09, 21 December 2024

Please see Setting up a server on the Luanti Developer Wiki.

For setting up a Luanti server according to Debian, see this page on the Debian Wiki.