Skip to main content
[ PIER ]

Minecraft Server

A managed Java Edition Minecraft server in one click.

Service #game#server#minecraft#java

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. 1 Open the Pier dashboard and click Add service.
  2. 2 Pick Minecraft Server from the template list.
  3. 3 Choose the version, set a service name, and Pier provisions the container, storage, and ports automatically.
  4. 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

Basic vanilla 1.21 server (Pier env) text
VERSION = LATEST
TYPE = VANILLA
DIFFICULTY = normal
MODE = survival
MOTD = My friends-only server
MAX_PLAYERS = 20
WHITELIST = alice,bob,charlie
OPS = alice
PaperMC with 4 GB heap text
VERSION = 1.21.3
TYPE = PAPER
MEMORY = 4G
DIFFICULTY = hard
MODE = survival
Fabric modded server text
VERSION = 1.20.4
TYPE = FABRIC
MEMORY = 6G
# Then drop mods into the mounted /data/mods volume
Server console via docker exec bash
# 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?
Pier exposes port 25565/tcp. If you're behind NAT, port-forward 25565 on your router. Otherwise the server is publicly listed (or whitelist-only with WHITELIST set).
How do I add an operator?
Set OPS=alice,bob in env, or use rcon-cli (docker exec ... rcon-cli op alice) after the server is running.
Does it run mods automatically?
For Forge/Fabric, mods go in /data/mods (mounted volume). Some modpacks need extra config files — drop them in /data as the modpack instructs.
Memory requirements?
Vanilla 4-8 players — 1 GB heap is enough. Plugins/modpacks — 2-8 GB depending on complexity. Set MEMORY=4G in env.
How do I back up the world?
Stop the container, snapshot the /data volume, restart. Or use rcon-cli save-all and copy world/ folder hot.
Auto-restart on crash?
Pier sets restart=unless-stopped — the container restarts on crash automatically.
Web map (Dynmap / BlueMap)?
Install the plugin in /data/plugins (PaperMC/Spigot), expose its port, attach a domain in Pier for HTTPS.

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 →