How to Run a Minecraft Server on Linux
Oct 18, 2026
What you need
A 64-bit Linux machine that can stay on while people play, with 4 cores and 8 GB of RAM as a sensible minimum. The packages need glibc 2.35 or newer and WebKitGTK 4.1 (libwebkit2gtk-4.1-0). In practice that means Ubuntu 22.04 or later, Debian 12 or later, Fedora 36 or later, or a rolling release.
You don't need root to run Minecraft servers, and you don't need to install Java yourself. Coalstack downloads the Java version each server needs.
Install Coalstack
Download the package for your distro from the Download page (the Linux tab), then install it:
- Debian and Ubuntu (.deb):
sudo apt install ./coalstack_*_amd64.deb - Fedora and openSUSE (.rpm):
sudo dnf install ./coalstack-*.rpm - Any other distro (.AppImage):
chmod +x coalstack_*.AppImage, then run it. Nothing is installed system-wide.
The build isn't signed, but there is no warning screen on Linux. It just runs.
Create your server
Open Coalstack and start the New Server wizard. Pick Java or Bedrock, a Minecraft version and a platform, tick the EULA box, and choose where the server folder goes. Coalstack downloads Java, the server and any loader installer, and shows the progress. Your server folder is a normal directory, so you can back it up or move it like any other.
For the full walkthrough, including mods and memory, see how to make a Minecraft server. Everything in it applies on Linux.
Let friends connect
On the Networking page, the Port Forwarding tab asks your router to open the port with UPnP and offers to add the firewall rule. On Linux it does that through ufw or firewalld and asks for authorization with a system prompt, so you don't have to type ufw allow yourself.
If UPnP isn't available, or your provider puts you behind CGNAT, the Tunnel tab connects Java servers through Playit with no router setup at all. The port forwarding guide covers the manual route.
Run it headless under systemd
For a box with no monitor, start Coalstack with --headless (or set COALSTACK_HEADLESS=1). There's no window, but servers, scheduled backups and restarts, and remote control from coalstack.net keep working.
- Configure it once with a window. Settings that only exist in the interface, such as JVM flags and the backup schedule, are set by running Coalstack normally first.
- Create the service. Save this as
/etc/systemd/system/coalstack.service, changingUserto the account that owns your server folders andExecStartif the binary isn't at/usr/bin/coalstack:[Unit] Description=Coalstack (headless) After=network-online.target Wants=network-online.target [Service] Type=simple ExecStart=/usr/bin/coalstack --headless Restart=on-failure RestartSec=5 User=youruser Environment=COALSTACK_HEADLESS=1 [Install] WantedBy=multi-user.target - Turn it on:
sudo systemctl daemon-reload && sudo systemctl enable --now coalstack
Run it as a normal user, not root. When you run systemctl stop coalstack, Coalstack stops any running server cleanly before it exits, instead of killing it.
Day to day, control a headless instance through the Conduit panel on coalstack.net once you've turned on remote control for a server. There is no command-line tool for starting a single server yet.
Linux limits to know about
- Bedrock needs 64-bit x86. Mojang only publishes an x86 Linux build, so Bedrock servers can't be created on ARM machines such as a Raspberry Pi. Java servers are unaffected.
- The .deb and .rpm don't update themselves. Your package manager owns them, so download the new package when there's a release. The AppImage updates itself.
- Docker mode needs setup. Install Docker and add your user to the
dockergroup first. - GNOME hides the tray icon unless you add the AppIndicator extension. It only costs you a shortcut.
More detail
The full list of what works and what's rough is in the Linux notes. If a server won't start, the error code reference explains the common messages.

