Setting up a server/Debian/de
Sprache: | English • Deutsch • 日本語 |
---|
Einen Server aufsetzen: Debian
Diese Anweisungen wurden mit Debian Jessie getestet (“Testing”, Stand Januar 2015), das ein minetest-server
-Paket enthält.
Ein einfacher Minetest-Server kann in jedem Debian (Ubuntu, Linux Mint oder davon abgeleiteten Distributionen) gestartet werden, der das Paket minetest
hat, indem Sie auf den Reiter “Server” gehen. Allerdings bleibt ein solches Spiel nur für die Dauer der Spielsitzung auf dem Rechner verfügbar,
Diese Anleitung zielt auf die Bereitstellung einer permanenten mimimalen Server-Umgebung ohne grafische Desktop-Umgebung.
Installation und anfängliche Vorbereitung
Befehle, denen ein $ vorangestellt ist, werden mit eingeschränkten Privilegien ausgeführt, während Befehle, denen ein # vorangestellt ist, mit Administratorrechten (üblicherweise mittels sudo
) ausgeführt werden.
Eine virtuelle Maschine mit Debian 7 vorbereiten (optional)
Falls Sie Minetest in einer speziell dafür vorgesehenen Umgebung installieren wollen, ist eine interessante Option, dies auf einem KVM-Host in Form einer fest zugehörigen virtuellen Maschine zu tun.
Dies erfordert eine vorhergehende Installation und Konfiguration von KVM und des Pakets virtinst auf Ihren Host-System. Sie können auch eine Netzwerkbrücke konfigurieren, so dass Ihr LAN direkten Zugriff auf den Server im selben Subnetz hat.
Der folgende Befehl wird eine virtuelle Maschine namens “dungeon” auf einem bestehenden KVM-Host vorbereiten:
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
Sobald es installiert ist, können Sie über VNC auf die Konsole zugreifen.
Das Minetest-Serverprogramm installieren
Installieren Sie das Paket minetest-server
:
# apt-get install minetest-server
Das aktuelle Debian-Paket in Jessie richtet den Minetest-Server nicht so ein, dass er automatisch als Dienst startet. Er kann unter dem Benutzer root
laufen, allerdings sollten Sie vorzugsweise einen Benutzer anlegen, um ihn auszuführen:
# adduser minetest
Seit Version 0.4.10+repack-3 ist keine manuelle Konfiguration von Debians Paket “minetest-server” mehr erforderlich. Bitte probieren Sie den Abschnitt über Systemd und SysVinit aus.
Bevor Sie ein automatisches Starten beim Hochfahren einrichten, sollten Sie in Betracht ziehen, den Server manuell zu starten, um die besten Befehlszeilenoptionen zu bestimmen.
Der Server manuell starten
Der Server kann manuell durch den Aufruf dieses Befehls gestartet werden:
$ minetestserver --info
Die letzten paar Zeilen der Terminal-Ausgabe sollte etwa so aussehen:
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
Den Server manuell stoppen
Um den Server zu stoppen drücken Sie Ctrl + C. Verhindern Sie ihn zu killen, solange dies nicht nötig ist, da dies zur Beschädigung der Welt führen kann.
Die letzten paar Zeilen der Terminal-Ausgabe sollte etwa so aussehen:
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
Automatisches Starten beim Hochfahren einrichten
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
minetestserver
command as determined after testing with manual server startup tocrontab
- Invoke the
crontab
editor:$ crontab -e
- Add your command to be executed at reboot to the very end of the file, for example:
@reboot /usr/games/minetestserver --info --worldname MyWorld
- Invoke the
- Save the file (Ctrl-X if using the
nano
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 /etc/minetest/pvp.conf
, the server will now use this second configuration and log everything to /var/log/minetest/pvp.log
.
Simply replace pvp
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 minetest.conf page.
- Use a different database backend for your world.
- One-line script for installing/compiling Minetest Git, for Debian / Ubuntu / Mint
- Guide to create fast minetest server on Debian
- Server commands page for a list of useful commands.
- Item strings for the itemstrings for use with the
/give
and/giveme
commands. - See the Privileges page for detailed information on the privilege system.
A few tips
- The
.minetest
directory contains game data (worlds, config, debug.txt
). - 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)