Minecraft Server
A managed Java Edition Minecraft server in one click.
A Pier-managed Minecraft Java Edition server based on the itzg/minecraft-server image — the de-facto standard Minecraft Docker image. Auto-downloads the chosen Minecraft version on first boot, supports vanilla / PaperMC / Spigot / Forge / Fabric / Bukkit flavors, configurable difficulty / game mode / world type, and persists worlds across restarts.
Deploy with Pier
- 1 Open the Pier dashboard and click Add service.
- 2 Pick Minecraft Server from the template list.
- 3 Choose the version, set a service name, and Pier provisions the container, storage, and ports automatically.
- 4 Attach a domain if you want HTTPS. Traefik auto-provisions the Let's Encrypt certificate.
What is a Pier-managed Minecraft server?
This template wraps the well-maintained itzg/minecraft-server image —
the community-standard Minecraft Docker image — and exposes the common
configuration knobs as Pier env vars. You pick a Minecraft version, a
server flavor (vanilla, PaperMC, Forge, Fabric, …), game mode and
difficulty, and Pier provisions, persists worlds, and restarts on crash.
Minecraft Java Edition only — for Bedrock (Pocket / Console editions), use the Geyser plugin on a PaperMC server or a separate Bedrock template.
How Pier deploys it
Default port: 25565/tcp (the standard Minecraft port). The data volume
mounts at /data — world files, server.properties, mods, plugins,
player data all persist there.
On first boot the image auto-downloads the chosen Minecraft version server JAR (or paper/forge/fabric variant) and starts the server with your env-var configuration. Subsequent boots reuse the local copy.
Env vars exposed by the image cover the common cases (EULA=TRUE pre-set, DIFFICULTY, MODE, MOTD, MAX_PLAYERS, WHITELIST, OPS, MEMORY). Anything not exposed can be edited live in /data/server.properties (mounted).
When NOT to use this template
For Bedrock Edition (mobile/console crossplay) without Java clients, use a Bedrock Dedicated Server template. For zero-ops managed hosting with a nice control panel and one-click backups, Realms or Apex Hosting may suit casual users better. For “I want to run my own Minecraft server cheaply on a VPS I already own”, this template is the right answer.
Key features
Auto-version download
Pick a version (latest, 1.21, 1.20, etc.) and the image downloads the corresponding server JAR on first boot. Upgrades are a version change in the UI plus a restart.
Vanilla and modded
Default is vanilla. Switch to PaperMC, Spigot, Bukkit, Forge, Fabric, Quilt, or Magma via the TYPE env var. Mods/plugins drop into the mounted /data/mods or /data/plugins.
World persistence
The data volume mounts at /data — your world, players, level data, mods all persist across restarts and version changes. Back it up like any other volume.
Whitelist + operator config
Standard server.properties options exposed as env vars — WHITELIST, OPS, MOTD, DIFFICULTY, MODE, MAX_PLAYERS. Edit live in Pier env settings.
Auto-EULA accept
EULA=TRUE env var pre-set so the server starts on first boot without manual eula.txt editing.
Java 17 / Java 21 variants
Use the java17 or java21 image tag for old/new Minecraft versions. Default tag uses the appropriate Java for the chosen Minecraft version.
Use cases
Friend group / family server
Whitelist-only server for a small group. Pier handles HTTPS for any web map plugin you add (Dynmap, BlueMap).
Modded server (Forge / Fabric)
Set TYPE=FORGE or TYPE=FABRIC, mount mods, set MEMORY for the larger heap that modpacks need.
PaperMC for performance
TYPE=PAPER replaces vanilla with the high-performance Paper fork. Plugins go in /data/plugins.
Mini-game / community server
Public-facing server with plugins for mini-games. Use PaperMC + Citizens + plugins of your choice.
Throwaway test server
Spin up a server, test a mod or seed, destroy it. The data volume makes restoration cheap.
Code examples
VERSION = LATEST
TYPE = VANILLA
DIFFICULTY = normal
MODE = survival
MOTD = My friends-only server
MAX_PLAYERS = 20
WHITELIST = alice,bob,charlie
OPS = alice VERSION = 1.21.3
TYPE = PAPER
MEMORY = 4G
DIFFICULTY = hard
MODE = survival VERSION = 1.20.4
TYPE = FABRIC
MEMORY = 6G
# Then drop mods into the mounted /data/mods volume # Send a server command (op, save-all, stop, etc.)
docker exec pier-minecraft rcon-cli list
docker exec pier-minecraft rcon-cli op alice
docker exec pier-minecraft rcon-cli save-all How it compares
| vs Realms (Mojang's hosted Minecraft) | Realms is SaaS, easy, costs ~$8/month, has a 10-player cap and limited mod support. Self-host gives unlimited players, every plugin/mod, your own backups, and is cheaper per month if you already have a VPS. |
| vs Aternos / Apex Hosting | Aternos is free but ad-supported and your server sleeps between sessions. Apex/Shockbyte are paid managed Minecraft hosts ~$5-20/month. Self-host is comparable cost and more control. |
| vs Bedrock Dedicated Server | This template is Java Edition only. For Bedrock (mobile/console crossplay) use a separate template or Geyser plugin to bridge. |
Frequently asked questions
Is the server publicly reachable?
How do I add an operator?
Does it run mods automatically?
Memory requirements?
How do I back up the world?
Auto-restart on crash?
Web map (Dynmap / BlueMap)?
Related services
Deploy on your VPS
A Pier-managed Minecraft Java Edition server based on the itzg/minecraft-server image — the de-facto standard Minecraft Docker image. Auto-downloads the chosen Minecraft version on first boot, supports vanilla / PaperMC / Spigot / Forge / Fabric / Bukkit flavors, configurable difficulty / game mode / world type, and persists worlds across restarts.
Deploy this service →