BlogGaming

Host a Luanti VoxeLibre Server on Debian

Updated by Adam on August 17th, 2026

Install and operate a dedicated Luanti server for VoxeLibre, formerly Minetest and MineClone2, with systemd, backups, firewall rules, and admin basics.

The names changed, but the project is still familiar: Minetest is now Luanti, and MineClone2 is now VoxeLibre. Luanti is the open-source voxel engine; VoxeLibre is a Minecraft-inspired game that runs on it.

This guide builds a dedicated Debian server with a separate service account, a systemd unit, a private-by-default configuration, and a backup path. Luanti 5.8 and newer no longer bundle a default game, so you must install VoxeLibre separately.

1. Install the server

On Debian, begin with the packaged server:

sudo apt update
sudo apt install luanti-server unzip curl

Some releases still use the older package or binary name. Check what your distribution installed:

command -v luantiserver || command -v minetestserver
apt-cache policy luanti-server minetest-server

If Debian's package is too old for the current VoxeLibre release, use a current build from a source you trust rather than mixing random repositories into the host.

2. Create a dedicated account and directories

sudo useradd --system --home /var/lib/luanti \
  --create-home --shell /usr/sbin/nologin luanti
sudo install -d -o luanti -g luanti \
  /var/lib/luanti/games \
  /var/lib/luanti/worlds \
  /var/lib/luanti/backups

Running the game server as an unprivileged account limits the damage from a vulnerable mod or game.

3. Install VoxeLibre

Download the current VoxeLibre release from its official ContentDB page. Verify the package page, release version, and compatibility before installing it.

Extract the game so its game.conf file ends up one directory below the games folder:

sudo unzip ~/Downloads/voxelibre.zip -d /var/lib/luanti/games/
sudo chown -R luanti:luanti /var/lib/luanti/games
find /var/lib/luanti/games -maxdepth 2 -name game.conf -print

Use the game ID reported in game.conf for the service command. Do not assume the display name and game ID are identical.

4. Create the configuration

Create /etc/luanti/server.conf:

server_name = Family VoxeLibre
server_description = A small private survival server
port = 30000
server_announce = false
enable_rollback_recording = true
motd = Be kind. Backups run nightly.
max_users = 12

Keep server_announce false until authentication, moderation, backups, and firewall rules are ready. Public servers need more protection than private family servers.

5. Test interactively

Replace GAME_ID with the value from game.conf and use whichever binary exists:

sudo -u luanti luantiserver \
  --config /etc/luanti/server.conf \
  --world /var/lib/luanti/worlds/main \
  --gameid GAME_ID \
  --terminal

Connect from a Luanti client on the LAN. Create the intended administrator account, stop the test with Ctrl+C, and inspect the world directory and logs.

6. Run it with systemd

Create /etc/systemd/system/luanti-voxelibre.service:

[Unit]
Description=Luanti VoxeLibre server
After=network-online.target
Wants=network-online.target

[Service]
User=luanti
Group=luanti
WorkingDirectory=/var/lib/luanti
ExecStart=/usr/bin/luantiserver --config /etc/luanti/server.conf --world /var/lib/luanti/worlds/main --gameid GAME_ID
Restart=on-failure
RestartSec=5
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ReadWritePaths=/var/lib/luanti

[Install]
WantedBy=multi-user.target

Adjust the binary path and GAME_ID, then validate and start:

sudo systemd-analyze verify /etc/systemd/system/luanti-voxelibre.service
sudo systemctl daemon-reload
sudo systemctl enable --now luanti-voxelibre
sudo systemctl status luanti-voxelibre --no-pager
sudo journalctl -u luanti-voxelibre -b --no-pager

7. Open only the required firewall port

Luanti uses UDP, with 30000 as the usual default:

sudo ufw allow from YOUR_LAN_SUBNET to any port 30000 proto udp
sudo ufw status

For an internet-facing server, forward UDP 30000 on the router and understand whether your ISP uses CGNAT. Do not expose SSH just because you expose the game.

Back up and restore

Stop the service briefly for a simple consistent archive:

sudo systemctl stop luanti-voxelibre
sudo tar -C /var/lib/luanti/worlds -czf \
  /var/lib/luanti/backups/main-$(date +%F-%H%M).tar.gz main
sudo systemctl start luanti-voxelibre

Copy backups off the server and test a restore into a separate world path. Rollback recording helps investigate griefing, but the Luanti documentation warns that it cannot reverse every mod-driven change; it is not a backup.

Updating safely

  1. Back up the world and configuration.
  2. Read the Luanti and VoxeLibre release notes.
  3. Test the new versions against a copy of the world.
  4. Stop the service.
  5. Replace the engine or game files without overwriting world data.
  6. Start and inspect logs.
  7. Keep the previous working version until players have tested the update.

Never disable Luanti's mod security, and grant powerful privileges only to verified players. The official Luanti server guide is the best source for current networking, moderation, and hosting advice.