Lightweight Bash tools to create, manage, and run Minecraft servers on Linux —
without panels, containers, or hidden magic.
This repository provides two complementary CLI tools:
mc– a server manager that runs Minecraft servers insidescreensessionsmc-new– an interactive setup wizard for creating new server instances
Designed for users who want full control, clarity, and zero abstraction.
- Start servers inside dedicated screen sessions
- Graceful shutdown via in-game
stop - Attach/detach from the live console
- List:
- running Minecraft servers
- available server directories
- Works with:
- Vanilla
- Paper
- Purpur
- Forge
- Fully interactive terminal wizard
- Supported server software:
- Vanilla
- Paper
- Purpur
- Forge (official installer)
- Automatically generates:
server.jar(or symlink for Forge)eula.txt- minimal
server.properties run.sh
- Optional immediate server start after setup
/home/minecraft/
├── survival_1.21.4/
│ ├── server.jar
│ ├── server.properties
│ ├── eula.txt
│ └── run.sh
├── modded_1.20.1/
│ ├── forge-1.20.1-47.2.20.jar
│ ├── server.jar -> forge-1.20.1-47.2.20.jar
│ └── run.sh
Rule: one server = one directory
Predictable, debuggable, clean.
- Linux (tested on Debian / Ubuntu)
- Bash
- Java 17+ (depending on Minecraft version)
screen- For
mc-newadditionally:curljq
sudo apt update
sudo apt install screen curl jq openjdk-21-jre-headlessgit clone https://github.com/Gaminggul/Minecraft-Server-Managment-Scripts.git
cd minecraft-server-managment-scriptsEdit both scripts and set your server root:
BASE_DIR="/home/minecraft"chmod +x mc mc-newsudo ln -s "$(pwd)/mc" /usr/local/bin/mc
sudo ln -s "$(pwd)/mc-new" /usr/local/bin/mc-newmc-newYou will be prompted for:
- server name
- software (Vanilla / Paper / Purpur / Forge)
- Minecraft version
- Forge only: exact Forge version (e.g.
1.20.1-47.2.20)
mc start <servername>mc stop <servername>mc attach <servername>mc listmc servers- Forge always requires an exact version
- Example:
1.20.1-47.2.20
- Example:
- The setup script:
- downloads the official Forge installer
- runs
--installServer - creates a
server.jarsymlink automatically
- Some Forge versions generate their own
run.sh- In those cases, the script informs you explicitly
- No silent failures, no guessing
- ❌ No web panel
- ❌ No Docker setup
- ❌ No hosting service
- ❌ No one-click magic
A clean, transparent toolchain for users who want to understand and control their Minecraft servers.
Inside mc:
JAVA="java"
MIN_MEM="8G"
MAX_MEM="12G"
JAR_NAME="server.jar"Everything is intentionally explicit.
- Clear instead of clever
- Bash instead of overengineering
- Control instead of black boxes
- Errors should be visible, not hidden
MIT License
Use it, modify it, learn from it.
Noel Janzen
30.12.2025