Luanti Server Setup & Deployment Guide
Luanti is the renamed continuation of the Minetest engine, and it remains one of the lighter self-hosted sandbox servers to run. A good setup is still more than just launching the binary once: you need a stable world path, the right gamepack, clean port exposure, and a background service that survives reboots.
1. Prerequisites and OS Distribution Packages
Luanti runs well on Linux, and a small VPS with SSD or NVMe storage is usually enough for private worlds or light modding. Bigger public worlds benefit more from clean disk IO and predictable CPU performance than from oversized RAM allocations.
Before you install packages, update the host:
sudo apt update && sudo apt upgrade -y
Package names vary by distribution. On Debian or Ubuntu, a Luanti server package may be available directly:
sudo apt install luanti-server
If your distro ships an outdated package, use the official Luanti packages or build from source instead of running an old engine under a new name.
2. Creating a Dedicated World User
Run the server as its own user instead of as root:
sudo adduser --disabled-login --gecos "" luanti
sudo su - luanti
mkdir ~/.luanti/worlds/MyFirstWorld -p
This gives you a predictable home for worlds, mods, and config under ~/.luanti/.
3. Launching in Headless Server Mode
Package naming differs. Some systems expose luantiserver; others use luanti --server. Use whichever your package provides.
luantiserver --world ~/.luanti/worlds/MyFirstWorld
# or
luanti --server --world ~/.luanti/worlds/MyFirstWorld
On first boot, Luanti creates the world data, validates the gamepack, and starts listening on the configured port. Stop it cleanly with Ctrl+C after the first successful boot. Avoid hard kills unless the process is truly stuck.
4. Essential Configuration Files
You normally need to validate both the per-world file and the global server config.
Start with the world metadata:
nano ~/.luanti/worlds/MyFirstWorld/world.mt
Make sure it points at a real installed gamepack and backend:
gameid = your_gamepack_id
backend = sqlite3
creative_mode = false
enable_damage = true
Then edit the main server config at ~/.luanti/luanti.conf:
server_name = Awesome Luanti Vanilla PvP
server_description = A completely fresh 24/7 dedicated server running custom mods.
server_address = myvps.domain.com
server_url = https://discord.gg/yourlink
port = 30000
max_users = 30
server_announce = true
strict_protocol_version_checking = false
Setting server_announce = true publishes the server to the public list. Leave it off if you only want direct IP or invite-only access.
5. Firewalls, Networking, and Port 30000
Luanti normally uses UDP port 30000. Open that port on the host and in any cloud firewall:
sudo ufw status
sudo ufw allow 30000/udp
sudo ufw reload
If you host from home, forward UDP 30000 on the router to the server's LAN IP. If you are behind CGNAT, router forwarding alone may still not expose the server publicly.
6. Keeping Luanti Running via Systemd Integration
A background service is the cleanest way to keep the server online after reboots and disconnects.
Create a systemd unit as root or with sudo:
sudo nano /etc/systemd/system/luanti-server.service
Use a minimal service definition:
[Unit]
Description=Luanti Dedicated Server
After=network.target
[Service]
Type=simple
User=luanti
Group=luanti
ExecStart=/usr/bin/luanti --server --world /home/luanti/.luanti/worlds/MyFirstWorld/
Restart=on-failure
RestartSec=5
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
Then reload and start it:
sudo systemctl daemon-reload
sudo systemctl enable luanti-server.service
sudo systemctl start luanti-server.service
Use systemctl status and journalctl to confirm it starts cleanly and does not boot-loop.
7. Advanced: PostgreSQL Migration
SQLite is fine for many private and small public servers, but larger worlds with heavier concurrent writes can benefit from PostgreSQL.
If you make that move, update the backend settings deliberately and test on a backup first. The exact migration command depends on the binary your package provides, but the main rule is the same: do the migration offline, back up first, and validate the world after conversion.
Want a cleaner path than doing this by hand? Supercraft's Luanti Server Hosting is the better fit when you want world import, backups, and mod handling without hand-building the service stack yourself.