Run your own Minecraft server. No terminal needed.
Start a vanilla server on this computer, create a modded one in a container, or attach to the Docker/Podman containers you already have - several at once.
One native app. No dashboard to self-host, no local API server.
Download · Website · Docs · Changelog
Why · Install · Features · Development · License
Running a Minecraft server means juggling server.properties in a text
editor, an RCON client for admin commands, docker logs -f or a container
dashboard for status, and manual tar commands for backups - or a
self-hosted web panel that means running yet another service (and securing
it) just to manage the one you actually care about.
MineUI is a native desktop app, not a web panel: Tauri v2 (Rust backend) driving a Next.js static-export frontend over Tauri IPC - no Electron, no bundled Chromium, no local HTTP server to expose or secure. It manages any number of servers at once, and each one runs in one of two ways:
- On this computer - MineUI creates and runs a vanilla server for you: pick a Minecraft version, set memory, accept the EULA, and MineUI downloads the official server jar (SHA-1 verified), configures RCON, and supervises the Java process. No containers required.
- In a container - a Minecraft server container managed by Docker or
Podman (auto-detected, Podman preferred): control, logs, players, RCON,
mods/plugins, config editing, backups, and container metrics. MineUI can
create the container for you from the
itzg/minecraft-serverimage - Vanilla, Paper, Purpur, Fabric, Quilt, Forge or NeoForge - or attach to one that already exists (any image of that style, with the world/config under/data).
Download the build for your platform from mineui.i4c.studio. Each link below always gets the current version:
| Platform | Download | Then |
|---|---|---|
| Windows x64 | MineUI_2.13.0_x64-setup.exe |
Run the installer |
| macOS (Apple Silicon) | MineUI_2.13.0_aarch64.dmg |
Open it and drag MineUI to Applications |
| macOS (Intel) | MineUI_2.13.0_x64.dmg |
Open it and drag MineUI to Applications |
| Linux x86_64 | MineUI_2.13.0_amd64.AppImage |
chmod +x and run |
| Debian/Ubuntu | MineUI_2.13.0_amd64.deb |
sudo apt install ./MineUI_2.13.0_amd64.deb |
The macOS builds are signed and notarized. Release notes and every earlier version are on the Releases page.
A server On this computer needs Java. If the computer has none that fits the Minecraft version you pick, MineUI offers Get Java for me and downloads it (see MineUI gets Java); Java already installed is used as before. A server In a container needs Docker or Podman.
Either works; MineUI finds it by itself and prefers Podman when both exist.
| Podman (recommended) | Docker | |
|---|---|---|
| Linux | sudo apt install podman · sudo dnf install podman · sudo pacman -S podman · sudo zypper install podman |
Install Docker Engine, then sudo usermod -aG docker $USER and log out and back in - MineUI runs docker as you, without sudo |
| Windows | wsl --install (once, restart), winget install RedHat.Podman, podman machine init, podman machine start - or Podman Desktop |
winget install Docker.DockerDesktop, start it once |
| macOS | brew install podman, podman machine init, podman machine start - or Podman Desktop |
brew install --cask docker-desktop, start it once |
Installed but MineUI still reports none? An app started from a launcher can
have a shorter PATH than your terminal (common with Homebrew on macOS). Put
the full path to podman or docker in Server Settings → Runtime binary
override.
v1.0.0on the Releases page is the old Electron app - it predates this architecture and isn't what this README describes.
The released binaries are free. Building from source requires a HeroUI Pro license - see Note on HeroUI Pro below before you start.
Website & docs: mineui.i4c.studio
With no server set up, the Dashboard asks two questions - What do you want to play? (Normal Minecraft or Minecraft with mods) and Who will play? (Just me, People at home, Friends in other places too) - says what it will set up, then creates and starts the server and ends on how players join. I know what I want opens the full create forms instead. It shows only when the one server you have is not set up yet. For a server On this computer, Just me only changes the wording; container servers are limited to this computer. The create forms keep server type, version, pack and the Mojang agreement up front and put the rest under More options, with the same defaults. 26 terms (RCON, port, whitelist, op, EULA, container, Java, the mod loaders, TPS, MSPT and more) have a What's this? explanation.
A switch in the header, Simple by default and remembered. Simple hides the Status, Console and Config pages; Scheduled tasks, Network and ports and the Advanced section in Server Settings; and the Dashboard's MOTD, ping, trend chip and sparklines. The server log sits behind Show the server log. A hidden page opened directly shows a notice with a Show Advanced button. It is a view setting only and never changes a server.
A server On this computer with no suitable Java offers Get Java for me.
MineUI downloads the Eclipse Temurin JRE of the major the Minecraft version
needs from Adoptium (api.adoptium.net and GitHub release assets, https
only), verifies its sha256, caps the download at 300 MB, and keeps it in
MineUI's own data folder, shared by all servers. Tested for real on Linux;
the Windows and macOS archive layouts are covered by tests on synthetic
archives only.
Each server's Dashboard shows a checklist: server made, started, you joined, a friend joined, first backup. Steps tick from real data, each open one has a Show me link, the card can be hidden, and it ends with an All done! moment at 5 of 5. Player count, ping and TPS digits roll when they change, a ring breathes around the status dot while the server runs, Start, Stop, Restart and the create buttons ripple on press, and the join address is a tilting "server pass" card with Copy. All of it stops under the system's reduce-motion setting, and sounds follow the sound setting in App Settings.
Add as many servers as you run - a Forge pack, a Fabric pack, a managed vanilla world - and MineUI manages all of them at the same time. Each one is its own profile with its own mode, connection, RCON allowlist, schedule, backup policy, player notes and activity log; scheduled restarts and backups keep running for every server, not just the one on screen. The header switcher and the dashboard's All servers strip show every server's state and player count at a glance, with start/stop right there. Every page header names the server it is showing and what that server actually is - loader and version, container, address - so two similar servers are never mixed up. Add, rename and remove servers in App Settings → Servers. Removing one only makes MineUI forget it: its container, world and backups are never touched.
Adding a server offers three routes: a Modded or modpack server (a new
container), a Normal Minecraft, on this computer server (vanilla, no
containers), or A container I already run. For a new container MineUI
creates an itzg/minecraft-server
container for you - pick Vanilla, Paper, Purpur, Fabric, Quilt, Forge or
NeoForge, the Minecraft version (only the ones that type has a build for),
memory and ports - picks the image with the right Java for that version,
generates the RCON password, and connects itself to the result. The world lives in a named volume.
Deleting is always your call. MineUI removes a container only when you ask it to - Delete container in Server Settings, or the tick box when you remove a server - and it keeps the world unless you tick that too and type the container's name. A world stored in a folder on your computer is never deleted. Deleting just the container is also how you start a server over with a different loader or modpack.
Or start from a modpack. Choose A modpack instead of a server type: search Modrinth right in the app (only packs that can run on a server are listed), paste a CurseForge pack's page address, or hand over the zip the CurseForge app makes with Export profile (MineUI reads the pack's name and Minecraft version from its manifest), and the server comes up with the pack's loader and mods installed. No API key needed for any of them. A modpack is applied when the container is created - to switch packs, delete the container in Server Settings and create it again.
No Podman or Docker yet? Wherever a container is needed and neither is installed, MineUI shows the install steps for your OS (Linux, Windows, macOS) with copyable commands, and a Check again button - see also Installing a container runtime.
The header's sliders button opens App Settings - the server list, appearance (dark / light mode, style, accent), sounds (volume and four sound sets) and an About card (version, where files live, a manual update check), which apply to MineUI as a whole. Settings in the navigation is always the open server's own: its name, performance, scheduled tasks, backups, and - under Advanced - connection details, console command rules and how the server is run (On this computer or In a container; it is changed there, never while the server runs, and asks first). The header's Simple / Advanced switch is separate: it only hides or shows parts of the app.
The Dashboard shows the address players type - on this computer, on your
home network, and from the internet (with the router steps) - instead of a
127.0.0.1 address nobody else can use. Container servers can publish extra
ports for mods such as Simple Voice Chat (UDP 24454), at creation or later
from Server Settings; changing ports rebuilds the container around the same
world.
Start, stop, and restart (managed process or container), with live TPS, MSPT, player count, and server version, plus a streamed log viewer - no polling.
Online players, join/leave history with last-seen and IP, one-click whitelist/op/ban/kick actions, and a private note per player for whatever you need to remember about them.
Send commands to the running server (over RCON). Only allowlisted commands
can be run - the page shows which - with a transcript, Up/Down recall and a
confirmation before stop.
Find mods. For a server In a container that runs Fabric, Quilt, Forge, NeoForge, Paper or Purpur, the add dialog searches Modrinth and lists only what works with that server's type and Minecraft version. Install also adds the other mods it needs, checks every file against the sha512 Modrinth published before keeping it, and says when every player has to install the mod too. Servers On this computer, Vanilla servers and modpack servers get a plain explanation instead of a search.
Browse what's installed, switch a mod off and on again without deleting it
(it applies after a restart), or upload a jar from disk. Downloading from a
link is still there in the Advanced view, with a warning that MineUI cannot
check such a file. The add dialog preselects mod or plugin from what the
server runs and warns when the choice cannot load there. Have a whole set of mods as a .zip - a
zipped folder, or a server pack? MineUI unpacks the jars inside and installs
them together, which is the way to put a pack's mods onto a server that
already exists.
Edit server.properties and files under config/ directly from the app:
a folder tree with search, line numbers, a wrap switch, Revert and Ctrl+S.
Create, list, restore, and delete .tar.gz snapshots. A retention policy
keeps only the newest N, and every new snapshot can be copied to a directory
of your choice - a NAS mount, a USB drive, a second disk.
Automatic restarts (with an optional chat warning 60 s ahead), scheduled backups, and timed chat broadcasts - every N hours, daily, or weekly at a local time, configured in Settings and shown with their next run.
Every action taken from the app or by the scheduler - server control, player actions, RCON commands, backups, config edits - lands in an append-only log on the Status page, with the outcome and the error if it failed.
CPU, memory, and disk, plus network/block IO when attached to a container.
Deepslate & Emerald (default), Phosphor Amber, Quantum Fluidity and Soft
Glass - each with a dark and a light palette. Pick Dark, Light or Match
system and a style in App Settings → Appearance, and optionally override
the accent color. The token system behind them is in
docs/theme-contract.md.
Point a server's Settings → Server utils URL at an instance of mineui_server_utils - a Forge 1.20.1 mod or Paper/Bukkit plugin that runs inside the server JVM - for real tick-based TPS/MSPT, per-dimension chunk/entity counts, and the actual loaded mod/plugin list. Without it, MineUI falls back to a server-list ping plus container/process metrics; everything else still works.
crates/mineui-core is pure Rust (no Tauri dependency, 328 unit tests);
src-tauri is a thin #[tauri::command] shell (61 IPC commands) that
delegates to it. The full command/error/event surface is specified in
docs/v2-contract.md - binding, not a suggestion; see
CONTRIBUTING.md.
Prerequisites: pnpm and Rust via rustup (stable toolchain) - see the Tauri v2 prerequisites for platform-specific system packages. On Linux:
sudo apt install libwebkit2gtk-4.1-dev build-essential libssl-dev librsvg2-devpnpm install
pnpm tauri dev # Next.js dev server + Tauri windowOther commands:
pnpm dev- frontend only, in a plain browser (no backend; IPC calls fail soft with a "Backend unavailable" notice)pnpm build- static export toout/(what Tauri bundles)pnpm lint- ESLintpnpm tauri build- production desktop bundlecargo test -p mineui-core- Rust unit tests (328 tests; must stay green)
CI (.github/workflows/ci.yml) runs lint/typecheck/build on the frontend and
cargo fmt/clippy/test plus a cargo check of the Tauri shell, on every
push to main/v2-tauri and PR into main.
The UI uses @heroui-pro/react (KPI cards, EmptyState, Stepper, and other
Pro components), a commercially licensed package from NextUI Inc. The
npm package on the public registry is a stub - its postinstall script
downloads the real components only with an authenticated session
(npx heroui-pro login) or an HEROUI_AUTH_TOKEN environment variable.
Without either, pnpm install appears to succeed but the package is empty
and the build fails to resolve @heroui-pro/react imports. Get a license at
heroui.com/pro, or open an issue if this is
blocking a contribution.
AGPL-3.0-only - see LICENSE. Fonts are self-hosted under their own
licenses (MIT/OFL) via Fontsource; Monocraft is
vendored under the SIL OFL - see app/fonts/Monocraft-LICENSE.txt.
@heroui-pro/react is separately, commercially licensed - see
Note on HeroUI Pro.