McPanel

McPanel

Docker app from Larv's Repository

Overview

McPanel runs your Minecraft servers at home: Paper, Vanilla, Fabric (Java) and Bedrock, from one simple web panel. It downloads the server software and the right Java version for you. - Add, start, stop and restart servers, with a live console and command history - Players page: who's online, kick, operators, bans, the whitelist, and an Allow button for anyone who was turned away - Settings as plain labelled controls, plus a raw server.properties editor - Search Modrinth for plugins and mods that match your exact version - Import a server or world from another host as a zip - Scheduled backups made while the server keeps running, with one-click restore - Crash restarts, version changes that keep your worlds, and two-factor sign-in PORTS: new servers pick their ports automatically from 25565-25575 (Java, TCP) and 19132-19141 (Bedrock, UDP). Widen these ranges if you run more servers. To play with friends outside your network, forward the server's port on your router. After it starts, open the WebUI and choose your password. The setup code is in the container's log.

McPanel

A simple, self-hosted web panel for running Minecraft servers. It downloads the server software and the right Java version for you, then lets you start, stop, configure and back up your servers from one page.

Features

  • Paper, Vanilla, Fabric and Bedrock servers
  • Java is downloaded automatically
  • Live console
  • Settings as plain controls, or edit server.properties directly
  • Server icons
  • Players: who's online, kick, ops, bans and whitelist
  • Backups: manual or scheduled, while the server runs
  • Plugins and mods from Modrinth, filtered to your version
  • Import a server or world from a zip
  • Restart on crash, start with the panel
  • Two-factor sign-in
  • Light/dark theme and accent colour

Docker

docker compose up -d
docker compose logs mcpanel     # shows the first-time setup code

Open http://<host>:8080 and enter the setup code to create your login. Everything is stored in ./data.

  • Ports: 8080 for the panel, 25565–25575/tcp for Java servers, 19132–19141/udp for Bedrock.
  • Stopping: give servers time to save. docker compose down does this; with docker stop, add -t 120.
  • File ownership: the container runs as UID 1000. Use user: in compose.yaml if ./data belongs to someone else.
  • SELinux (Fedora, RHEL): mount with ./data:/data:Z.
  • Podman (rootless): add --userns=keep-id.

UnRAID

Image: ghcr.io/revise0592/mcpanel:latest. Map /data to an appdata folder and add the ports above. In Extra Parameters:

--init --stop-timeout=120 --user 99:100

On a custom network such as br0, add --dns=1.1.1.1 (or your router's IP) if the panel can't load version lists or downloads.

Without Docker

Needs Linux (x86-64 or ARM64). Download a binary from Releases, or build with Go 1.26+:

make build
./bin/mcpanel -data ./data

The setup code is printed in the log. To run it as a service, see deploy/mcpanel.service.

Flag Env var Default
-data MCPANEL_DATA ./data Where everything is stored
-addr MCPANEL_ADDR :8080 Listen address
-tls-cert, -tls-key MCPANEL_TLS_CERT, MCPANEL_TLS_KEY Serve HTTPS directly

Locked out?

Stop McPanel, then run mcpanel reset-password -data ./data (Docker: docker compose run --rm mcpanel reset-password). This sets a new password, turns two-factor sign-in off and shows your username.

Good to know

  • Playing outside your network: forward the server's port on your router (TCP for Java, UDP for Bedrock).
  • Bedrock download fails: get the Linux server zip from minecraft.net and use Settings → Install from a zip.
  • Exposing the panel to the internet: put it behind HTTPS, either with -tls-cert/-tls-key or a reverse proxy.
data/
  mcpanel.json        panel settings and server list
  servers/<id>/       server files (worlds, configs, plugins)
  backups/<id>/       backups
  runtimes/           downloaded Java

License

MIT. Bundles htmx (0BSD) and uses rsc.io/qr (BSD-3-Clause). Not affiliated with Mojang or Microsoft. Development notes are in CONTRIBUTING.md.

Requirements

A free IP address on your home network for the container (Network Type: br0, Fixed IP address). It can't run on Unraid's own IP or on the bridge network.

Related apps

Details

Repository
ghcr.io/revise0592/mcpanel:latest
Last Updated2026-10-27
First Seen2026-10-27

Runtime arguments

Web UI
http://[IP]:[PORT:8080]
Network
br0
Shell
bash
Privileged
false
Extra Params
--init --stop-timeout=120 --user 99:100

Template configuration

App dataPathrw

Servers, backups, Java runtimes and settings

Target
/data
Default
/mnt/user/appdata/mcpanel
Value
/mnt/user/appdata/mcpanel