A lightweight, web-based control panel for managing multiple Minecraft servers via Docker.
- Multi-Server Management โ Deploy, start, stop, and monitor multiple Minecraft servers from a single dashboard
- Docker Orchestration โ Each server runs in its own isolated Docker container
- File Management โ Browse, upload, download, and edit server files directly in the browser
- Mod Management โ Install, remove, and toggle server-side and client-side mods
- RCON Console โ Send commands to running servers via WebSocket
- Real-Time Logs โ Stream server logs in real-time through WebSocket
- Player Management โ View online players, bans, ops, and whitelist
- Client Mod Archive โ Generate and share client mod packages with public download links
- Minimin Sync โ Pair with the desktop client so players can auto-sync modpacks
- Modrinth Integration โ Search and download mods directly from Modrinth
- Backend: Go + Docker SDK โ orchestrates containers, exposes REST API and WebSocket endpoints
- Frontend: Nuxt 4 + Vue 3 + TailwindCSS โ SPA dashboard served by Caddy
- Reverse Proxy: Caddy โ serves static frontend and proxies
/api/*and/ws/*to the backend - Process Manager: supervisord โ runs backend and Caddy in a single container
- Docker & Docker Compose
- Docker socket access (for orchestrating Minecraft containers)
# 1. Clone the repository
git clone https://github.com/quonaro/minimin.git
cd minimin
# 2. Set a strong API key and host server directory
cp backend/.env.example backend/.env
# Edit backend/.env and set ORCHESTRATOR_API_KEY and MC_SERVERS_HOST_DIR
# 3. Start the stack
docker compose up -d
# 4. Open http://localhost:8080| Service | Description |
|---|---|
minimin |
Main container with Caddy (port 80) + Go backend (port 8081) |
volumes |
instance โ state file (instance.yml), ./servers โ server data |
ports |
8080:80 โ web UI and API |
| Variable | Default | Description |
|---|---|---|
ORCHESTRATOR_API_KEY |
(required) | Secret key for authentication |
ORCHESTRATOR_LOG_LEVEL |
info |
Backend log level: debug, info, warn, error |
MC_SERVERS_DIR |
/app/servers |
Directory for server data inside the container |
MC_SERVERS_HOST_DIR |
(required) | Absolute host path that maps to MC_SERVERS_DIR |
MC_INSTANCE_FILE |
/app/instance.yml |
Path to state file |
The project runs exclusively inside Docker. Use dev.yml for hot-reload development.
# 1. Ensure backend/.env exists with ORCHESTRATOR_API_KEY and MC_SERVERS_HOST_DIR
# 2. Export the same host directory for the compose file
export MC_SERVERS_HOST_DIR=/absolute/path/to/servers
# 3. Start dev stack
docker compose -f dev.yml up
# 4. Open frontend at http://localhost:3000
# Backend API is available at http://localhost:8081docker build -t minimin .Multi-stage build:
frontend-builderโ installs npm deps and generates static SPAbackend-builderโ compiles Go binaryruntimeโ Alpine Linux with Caddy + supervisor
Commit screenshots to
docs/screenshots/(or use GitHub drag-n-drop upload) and replace the paths below.
Main dashboard โ server cards with status, online players, quick actions.
Server console tab โ real-time logs + RCON command input.
File manager โ browsing server directories, editing config files.
Mod management โ installed mods list, toggle / remove / add from Modrinth.
Resource packs & shaders management.
Client mod archive โ generating a public download link for players.
Online players, bans, ops, and whitelist view.
Open source. See repository for details.
