The simplest reliable setup is Docker Compose with a Mindustry server image, both TCP and UDP port 6567 published, and a persistent volume mounted at /data. Start it with docker compose up -d, attach to the console with docker attach mindustry-server, then run host Glacier survival. The volume keeps saves, maps, mods, and configuration when the container is replaced.
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
What a Dockerized Mindustry server does
A Mindustry dedicated server is a standalone, headless multiplayer process. It runs without a graphical game client and waits for players to connect, while administration happens through a terminal console. Docker packages that process with its Java runtime, startup behavior, network publishing, and data directory so you can recreate the server with the same Compose file.
As an Amazon Associate I earn from qualifying purchases.
Free tools Windows power users keep installed
One-click scans. No signup required.
Docker does not remove the networking or administration work. You still need to decide whether players connect only from your home network or from the public Internet, allow the correct protocols through the host firewall, and forward the game port at your router when the server is behind NAT.
Requirements before you deploy
- A Linux or Windows machine that can run Docker Engine and the Docker Compose command.
- A stable local address for the host. A DHCP reservation is preferable to an address that can change after a reboot.
- At least 6567 available for Mindustry traffic on the host. The game uses both TCP and UDP on that port by default.
- Enough storage for the server data, maps, mods, and backups. The exact requirement depends on the maps and mods you install.
- For Internet play, access to your router and permission from your Internet provider to receive inbound connections.
On Windows, the official server guidance calls for firewall rules covering both TCP and UDP. A Docker port publication is not a substitute for those host-firewall rules.
#1 Best Overall
- Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM)
- Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
- CanaKit Turbine Black Case for the Raspberry Pi 5
- CanaKit Low Noise Bearing System Fan
- Mega Heat Sink - Black Anodized
Create a Docker Compose deployment
Make a new directory for the server and save this as compose.yaml. The image and tag shown are a current example; check that image’s README before deploying and replace the tag if its documented paths or startup options change.
services:
mindustry-server:
image: ghcr.io/skint007/mindustry-server:main
container_name: mindustry-server
restart: unless-stopped
ports:
- "6567:6567/tcp"
- "6567:6567/udp"
volumes:
- mindustry-data:/data
stdin_open: true
tty: true
volumes:
mindustry-data:
Why each Compose setting matters
portspublishes the same host and container port for both transport protocols. Omitting UDP or TCP can produce a server that appears open but does not work correctly for every client.mindustry-data:/dataplaces the important files outside the writable container layer. Removing and recreating the container therefore does not remove the server’s saves or configuration.restart: unless-stoppedbrings the service back after a crash or host reboot, but respects an intentionaldocker compose stop.stdin_openandttykeep an interactive terminal available for the Mindustry console.
The main tag can change as the image is rebuilt. For a production server, select a documented release tag (or a digest) after checking the image’s current instructions, record that choice in version control, and change it deliberately.
Start the container and host a map
- Open a terminal in the directory containing
compose.yaml. - Pull the image and start the service in the background:
docker compose up -d
- Confirm that the container is running:
docker compose ps
docker compose logs --tail=100 mindustry-server
- Attach to the server console:
docker attach mindustry-server
- At the Mindustry prompt, host a map and mode. For example:
host Glacier survival
The map name must exist in the server’s available maps. The image documents maps all for listing maps, status for a quick server state, help for available commands, and stop for a controlled shutdown. Keep the terminal attached while you administer the server; closing an attached terminal is different from stopping the container, so use Docker’s normal detach behavior when you want the process to continue.
Host automatically after a restart
If you want a game to start without manually attaching after every reboot, set the image’s start command from the console:
Rank #2
- Includes Raspberry Pi 5 16GB with 2.4Ghz 64-bit quad-core CPU (16GB RAM)
- Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
- CanaKit Turbine Black Case for the Raspberry Pi 5
- CanaKit Low Noise Bearing System Fan
- Mega Heat Sink - Black Anodized
config startCommands host Glacier survival
To remove that automatic host command, run:
config startCommands ""
Automatic hosting is convenient for a private, single-purpose server. For a community server, consider whether an unattended map start could surprise players after maintenance or a crash.
Choose LAN-only or public access
Decide the access model before changing firewall and router settings. The same container can serve either model, but the exposure and operational responsibilities are different.
| Access model | What players use | Network work | Typical risk and responsibility |
|---|---|---|---|
| LAN-only | The server’s private IPv4 address, such as 192.168.x.x:6567 |
Allow the host firewall on the private network. Do not create an Internet-facing router forward. | Only devices on the local network should reach it. A LAN-focused project demonstrates binding to a configured LAN address instead of 0.0.0.0. |
| Public Internet | Your public IP address or a DNS name, with port 6567 | Allow TCP and UDP on the host firewall and forward both protocols from the router to the server’s fixed private address. | The service is reachable from the Internet. You must maintain updates, backups, access controls, and abuse monitoring. |
LAN setup
From another device on the same network, connect to the server’s private address and port 6567. If it fails, check that Docker is listening on the expected interface, the host firewall permits the private-network profile, and the client and server are actually on the same routed network. A LAN-oriented Docker implementation can bind only to a selected LAN IPv4 address and exposes checks for the 6567 listener; that pattern is useful when you do not want Docker publishing on every interface.
Public setup
- Give the Docker host a stable private address through a DHCP reservation or static configuration.
- Create two router port-forward rules to that address: 6567/TCP and 6567/UDP.
- Create matching host-firewall rules. On Windows, allow both protocols as the official guide recommends.
- Give players your public address and port. Test from a different network, such as a mobile connection; testing only from inside your LAN can be misleading when the router lacks hairpin NAT.
The official FAQ summarizes the public-access requirement as: “You need to port forward and share your IP with the other players.” If your provider uses carrier-grade NAT, an inbound forward may not work; in that case, use a host with a reachable public address or keep the server LAN-only.
Rank #3
- CanaKit Raspberry Pi 5 Essentials Starter Kit
Keep saves and configuration through container updates
The persistent mount is the boundary that matters. The image stores saves, maps, mods, and configuration under /data, and the Compose volume maps that directory to Docker-managed storage. Replacing the container does not erase files in the volume.
Inspect the data volume
docker inspect mindustry-server --format '{{json .Mounts}}'
Look for a mount whose destination is /data. If that mount is absent, stop before installing maps or mods: files written only inside the container can disappear when it is recreated.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Back up before changes
Stop or quiesce the server before a backup so a save is not being written while it is copied. One practical pattern uses the running container’s mounted volume and a local backup directory:
mkdir -p backups
docker compose stop mindustry-server
docker run --rm --volumes-from mindustry-server -v "$PWD/backups":/backup alpine tar czf /backup/mindustry-data-$(date +%F).tgz -C /data .
docker compose start mindustry-server
The temporary Alpine container is used only to create the archive; it does not alter the Mindustry image. Verify that the archive exists and periodically perform a test restore into a separate volume. The LAN-focused Docker project documents tar-based backup and restore operations as an explicit part of its workflow.
Rank #4
- All-in-One Complete Kit: This SANOOV RPi 5 bundle comes with Raspberry Pi 5 4GB RAM single board, active cooler, durable ABS case and screwdriver. No extra parts needed, ready to use right out of the box for beginners and hobbyists
- Powerful Single Board Computer: Equipped with 4GB RAM and high-performance processor, delivers fast running speed for 4K playback, AI projects, programming and daily computing tasks. SANOOV for raspberry pi 5 4GB is equipped with broadcom 64 quad-core Arm Cortex A76 processor with gigabit ethernet and upgraded with IEEE 802.11ac Wi-Fi, Bluetooth 5.0 dual-band 2.4Ghz and 5Ghz and Power Over Ethernet (POE). Upgrading delivers 2-3 x speed vs Pi 4, redefining the experience
- Efficient Active Cooler: Effectively lowers operating temperature and prevents performance throttling. Runs quietly even under long-time heavy load, ensures stable operation all day long. SANOOV RPi 5 4GB kit offer an active cooler, which combines an aluminium heatsink with a high-performance PWM fan. Active cooler is fully compatible with the Pi OS, which can effectively reduce the temperature of RPi5 and ensure its good performance during long-term high load operation
- Sturdy ABS Protective Case: Well-fitted for Raspberry Pi 5 board, can be secured with 4 screws to effectively protect the Pi 5 motherboard from damage, reserves full access to all ports and buttons. SANOOV uses ABS material to produce the case, which has a softer texture and feel. Meanwhile, SANOOV case adopts a layered design for easy disassembly and installation. (Tip: The Case cannot install M.2 HAT Add on Board and Solid State Drive!)
- Wide Application & Full Compatibility: Seamlessly compatible with official OS and mainstream peripheral accessories for Raspberry Pi 5. Whether you are a beginner, student, electronics hobbyist or professional developer, this all-in-one kit meets your diverse needs. It excels in IoT projects, robotics design, retro gaming devices, home media servers and other DIY creations. Backed by a large global community, you can easily find guides, technical support and shared projects online
Add custom maps and mods
Install a .msav map
- Copy the map file into the mounted data tree’s
config/maps/directory. With the example container, a direct copy command is:
docker cp MyMap.msav mindustry-server:/data/config/maps/
- Attach to the console and refresh the map list:
docker attach mindustry-server
reloadmaps
- Use
maps allto confirm that the server sees the map, then host it withhost MyMap survival(substitute the exact map name).
Install a mod
- Copy the mod’s
.jarfile into/data/config/mods/:
docker cp MyMod.jar mindustry-server:/data/config/mods/
- Restart the container so Mindustry loads the mod:
docker compose restart mindustry-server
Check the server log after restarting. Mods can depend on a particular Mindustry version; keep a backup before changing either the image tag or a mod, and remove an incompatible file from config/mods/ if the server fails during startup.
Administer the running server
Use docker attach mindustry-server whenever you need the interactive console. The official command reference includes these commonly needed operations:
Recommended Free Tools
| Command | Purpose |
|---|---|
players |
List connected players. |
kick <player> |
Remove a player from the server. |
ban <player> / unban <player> |
Block or restore a player’s access. |
whitelist |
Manage a restricted player list when you want invite-only access. |
admin <player> |
Grant administrative privileges to a player. |
save |
Write the current game state to a save. |
load <save> |
Load a named save. |
saves |
List available saves. |
loadautosave |
Load the latest automatic save. |
status |
Show current server status. |
stop |
Stop the Mindustry server process cleanly. |
Server configuration also includes name, desc, port, startCommands, logging, strict, and antiSpam. Change one setting at a time, record the intended value, and confirm the result with status or the server log.
Update the image without losing the world
The documented update flow for the current image is:
Best Value
- 【What you Get】You will get 1*Pi 5 8GB Single Board,1*RasTech Case,1*Active Cooler,1*Screwdriver,1*Installation instructions,12-month free warranty, lifetime service, 24-hour prompt and friendly response.
- 【More Connectors】There are two USB 3.0 ports(5Gbps simultaneously) and two USB 2.0 ports, which triple total bandwidth ,support any combination of up to two cameras or displays. Peak SD card performance is doubled through support for the SDR104 high-speed mode. It provides a smooth desktop experience for you. Offer Gigabit Ethernet and a PCIe interface, along with dual-band Wi-Fi and Bluetooth 5.0/BLE wireless capability. The RasTech Pi 5 Kit use the new 27W 5.1V 5A USB-C power connector.
- 【 Support Dual 4Kp60 Display 】Each of the two microHDMI sockets can control a 4K display at 60 Hertz, now support HDR, offering super HD video for media streaming projects. RPi 5 is the first RPi model that comes with a PCI Express port (PCIe 2.0 x1 with 500 MB/s) to attach SSDs (requires separate M.2 HAT).
- 【 Excellent Chips And Applications】Pi 5 is a full-size Pi computer using silicon built in-house at Pi. The RP1 “southbridge” provides the bulk of the I/O capabilities for Pi 5. Pi 5 is more friendly and convenient in the development of Internet of Things, Web development, machine identification, automatic control and other electronic equipment applications and network.
- 【 Faster CPU, Better GPU 】 Pi 5 features a Broadcom BCM2712 64-bit quad-core Arm Cortex-A76 processor running at 2.4GHz, it delivers a 2–3× increase in CPU performance relative to RaspberryPi 4. The 800MHz VideoCore VII GPU is compatible to OpenGL ES 3.1 and Vulkan 1.2, substantial uplift in graphics performance. Pi 5 Offers lightning-fast CPU speed, a PCI Express interface, a Real Time Clock (RTC) and a power button and runs significantly cooler than Pi 4.
docker compose pull
docker compose up -d
pull downloads the new image; up -d recreates the container if necessary while reusing the named data volume. Before changing the Mindustry version or image tag:
- Tell players the maintenance window.
- Run the in-game
savecommand and stop the service cleanly. - Create and verify a tar backup of
/data. - Change the image tag in
compose.yaml, or pull the updated tag if the file already points to it. - Start the service and inspect logs, the map list, installed mods, and player connectivity.
- Keep the previous image tag and backup until the new version has been used successfully.
A LAN-oriented project uses a configured MINDUSTRY_VERSION and rebuilds its image instead of pulling a prebuilt tag. That is an implementation-specific workflow; the important principle is the same: keep data outside the image and verify the server after every version change.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Operational hardening
- Limit exposure. Do not forward 6567 on the router for a LAN-only game. If public access is required, forward only the needed TCP and UDP port.
- Control administration. Treat console access and the
admin,ban, andwhitelistcommands as privileged operations. Restrict shell access to trusted operators. - Watch logs. Use
docker compose logs -f mindustry-serverduring startup, updates, and mod changes. Keep logging enabled when diagnosing disconnects or failed loads. - Use health checks thoughtfully. The LAN-focused project demonstrates Docker health checks, resource limits, non-root operation, and optional systemd startup. These are useful patterns, but their exact configuration belongs to the image or project you choose, not to Mindustry itself.
- Plan storage. Monitor free space in the Docker volume and the host filesystem. A full disk can prevent saves and produce symptoms that look like a game or network failure.
- Document recovery. Keep the Compose file, image tag, backup location, router rules, and any custom map or mod list together so another administrator can restore the service.
Can it run on a Raspberry Pi?
Yes, according to the official Mindustry FAQ, a dedicated server can run on a Raspberry Pi when the correct Java version is installed. The FAQ does not publish a model-specific player limit or performance figure, so no particular Pi model should be promised to support a fixed number of players.
Docker adds one more compatibility check: the selected Mindustry image must provide a build for the Pi’s CPU architecture, or you must use an image and Java installation that do. Verify the image’s supported architectures before deploying. Use wired networking where possible, keep the data volume on reliable storage, and apply the same backup and update process as on a larger host. A Pi is a low-power option, not a guarantee of a given tick rate, map size, mod load, or player count.
Choose the deployment style that fits your situation
| Choice | Advantages | Trade-offs | Best fit |
|---|---|---|---|
| Docker image with Compose | Repeatable configuration, simple container replacement, named-volume persistence, and easy image pulls. | You must understand Docker networking, volume backups, and the image’s README. | Most home servers and administrators who want reproducible operations. |
| Self-built Java server | Direct control over the downloaded server JAR and Java process. | You manage Java, startup scripts, service supervision, file paths, and upgrades yourself. | Operators who need a custom Java or operating-system layout. |
| Home hardware | No recurring hosting bill and direct control of the LAN. | Electricity, router configuration, changing public IPs, and home upload reliability remain your responsibility. | Family or friend groups, especially LAN play. |
| VPS or other hosted machine | Usually has a reachable public address and stays online when your home network is down. | Recurring cost, provider firewall rules, and the provider’s backup and abuse policies. | Public communities that need dependable Internet reachability. |
Manual host command |
Maximum control over when a map starts. | An operator must attach and issue the command after a restart. | Testing, rotating maps, or occasional sessions. |
startCommands auto-hosting |
Automatically starts a selected map and mode after restart. | An unattended restart may begin a game before an administrator is present. | Small, always-on servers with a predictable map. |
The official non-Docker method is to download the dedicated server, run it with java -jar [server].jar, and issue host <mapname> [mode]. Docker changes packaging and lifecycle management; it does not change the Mindustry commands or the need to publish the correct network endpoint.
Troubleshoot the common failures
The container exits immediately
- Run
docker compose logs mindustry-serverand look for an image startup error, Java problem, or invalid configuration. - Confirm that the image tag and its documented command match the Compose file.
- Check that the host has enough disk space and that the data mount is writable by the process inside the image.
Players on the LAN cannot connect
- Confirm the container is up with
docker compose ps. - Check that both
6567/tcpand6567/udpare published. - Use the server’s private address, not its public address, for an internal test.
- Allow both protocols through the host firewall and verify that the client is on the same reachable subnet.
Players outside the network cannot connect
- Test from a genuinely different network.
- Verify both router forwards point to the host’s current private address.
- Confirm the host firewall allows both protocols.
- Check for carrier-grade NAT or another upstream router that prevents inbound forwarding.
The map or mod is missing
- Verify the file is under
/data/config/maps/or/data/config/mods/, not merely in the container’s unrelated working directory. - Run
reloadmapsafter copying a map. - Restart after installing a mod and inspect the logs for version or dependency errors.
Saves disappeared after an update
Inspect the container mount and confirm its destination is /data. If the volume was removed or the Compose project was changed so it points to a different volume, stop using the new empty data directory and restore the last backup into the intended volume before starting again.
Quick Recap
Maintenance checklist
- Keep
compose.yamlunder version control, including the selected image tag. - Back up
/databefore image, Mindustry, or mod changes. - Test a restore rather than assuming an archive is usable.
- Review router and firewall rules whenever the host address changes.
- Check logs after every restart and update.
- Periodically verify that maps, mods, saves, and automatic start commands still match your intended server configuration.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




