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
- Back up the world and configuration.
- Read the Luanti and VoxeLibre release notes.
- Test the new versions against a copy of the world.
- Stop the service.
- Replace the engine or game files without overwriting world data.
- Start and inspect logs.
- 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.