Skip to content
I4cTimePublic

About

The desktop app your containerized Minecraft server has been missing — Docker/Podman Minecraft server manager for desktop

Topics

Resources

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

MineUI - Run your own Minecraft server. No terminal needed. Free and open source for Windows, macOS and Linux.

MineUI

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

CI Latest release Total downloads License: AGPL-3.0 Platform: Linux, Windows, macOS Website Discord X (Twitter)

Why · Install · Features · Development · License


Why MineUI?

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-server image - 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).

Install

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.

Installing a container runtime

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.0 on 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

Features

Start here, for a first server

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.

Simple and Advanced view

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.

MineUI gets Java

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.

Getting started and a few signs of life

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.

Several servers at once

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.

Create a modded server without touching the command line

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.

App settings vs. server settings

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.

Ports and how players join

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.

Server control and live status

Start, stop, and restart (managed process or container), with live TPS, MSPT, player count, and server version, plus a streamed log viewer - no polling.

Player management

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.

Console

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.

Mods & plugins

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.

Configuration editor

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.

World backups

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.

Scheduled tasks

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.

Activity log

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.

System metrics

CPU, memory, and disk, plus network/block IO when attached to a container.

Four styles, dark and light

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.

Enriched metrics via a companion mod (servers In a container, optional)

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.

Every backend call is typed and contract-bound

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.

Development

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-dev
pnpm install
pnpm tauri dev     # Next.js dev server + Tauri window

Other commands:

  • pnpm dev - frontend only, in a plain browser (no backend; IPC calls fail soft with a "Backend unavailable" notice)
  • pnpm build - static export to out/ (what Tauri bundles)
  • pnpm lint - ESLint
  • pnpm tauri build - production desktop bundle
  • cargo 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.

Note on HeroUI Pro

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.

License

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.

ko-fi

About

The desktop app your containerized Minecraft server has been missing — Docker/Podman Minecraft server manager for desktop

Topics

Resources

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages