Skip to content

🌍 Create, manage, and monitor Minecraft servers from your terminal β€” supports Paper, Fabric, Forge, and more.

License

Notifications You must be signed in to change notification settings

NeuroNexul/mcworker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

95 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MineWorker

Go Version License

Warning

🚧 Under Construction β€” This project is currently in active development. Features and APIs may change without notice.

A terminal-based Minecraft server management tool built with Go and Bubble Tea.

MineWorker Main Menu

Features

  • 🌍 World Management β€” Create, configure, and manage multiple Minecraft server worlds with an intuitive form-based interface
  • βš™οΈ Server Support β€” Vanilla, Fabric, and Forge servers with automatic JAR downloading
  • β˜• Java Management β€” Automatic Java version detection and installation (Eclipse Temurin) per world
  • ⌨️ Script Generation β€” Auto-generates start scripts for Windows (.bat) and Unix (.sh) with proper JVM flags
  • πŸ€– Server Configuration β€” Full control over RAM allocation, port, gamemode, difficulty, PVP, and more
  • πŸ–₯️ Session Management β€” Run servers in tmux sessions or foreground mode
  • πŸ“Š Progress Tracking β€” Real-time creation progress with stage indicators and scrollable logs
  • 🎨 Beautiful TUI β€” Full-screen terminal interface powered by Bubble Tea with modern styling

Installation

From Source

# Clone the repository
git clone https://github.com/neuronexul/mcworker.git
cd mineworker-go

# Build
go build -o mcworker ./cmd/cli

# Run
./mcworker

Requirements

  • Go 1.25 or later
  • Linux, macOS, or Windows
  • tmux (optional, for background server sessions)

Usage

Simply run the mcworker command to launch the interactive TUI:

mcworker

All functionality is driven through the TUI with proper interactive elements β€” no subcommands required.

Keyboard Shortcuts

Key Action
↑ / k Navigate up
↓ / j Navigate down
1-4 Quick select menu item
Enter Confirm selection
Tab Next field (in forms)
Shift+Tab Previous field (in forms)
q Quit

Server Creation Workflow

When creating a new world, MineWorker automatically handles:

  1. Directory Setup β€” Creates the world directory structure
  2. Java Runtime β€” Downloads and installs the required Java version (if not present)
  3. Server Download β€” Fetches the server JAR for your selected server type and version
  4. EULA Acceptance β€” Automatically accepts the Minecraft EULA
  5. Script Generation β€” Creates start scripts with optimized JVM arguments
  6. Configuration β€” Saves the world configuration and generates server.properties
  7. Network Setup β€” Configures port and DNS settings

World Configuration

Each world is a self-contained unit with its own worker.json configuration:

{
  "world": {
    "name": "my-survival-world",
    "path": "./",
    "minecraft_version": "1.21.11",
    "description": "This is my survival forever world"
  },
  "server": {
    "type": "fabric",
    "jar": "fabric-server-1.21.11-0.18.4.jar",
    "eula_accepted": true
  },
  "java": {
    "version": "21",
    "vendor": "temurin",
    "path": "/home/neuronexul/.mcworker/java/temurin-21/bin/java"
  },
  "resources": {
    "ram": {
      "min": "2G",
      "max": "4G"
    },
    "cpu": {}
  },
  "network": {
    "port": 25565,
    "dns": "mc.nexul.in"
  },
  "backups": {}
}

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚        Bubble Tea TUI        β”‚  ← Main menu, create world form, progress screen
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–²β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚     Application / Tasks      β”‚  ← Server creation orchestration
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–²β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚      Domain / Core Logic     β”‚  ← World, server types, validation
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–²β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Runtime / System Services   β”‚  ← Java, scripts, sessions, network
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Project Structure

mineworker-go/
β”œβ”€β”€ cmd/cli/                    # Entry point
β”œβ”€β”€ internal/
β”‚   β”œβ”€β”€ app/                    # Application orchestration
β”‚   β”‚   └── create.go           # Server creation workflow
β”‚   β”œβ”€β”€ domain/                 # Pure business logic
β”‚   β”‚   β”œβ”€β”€ server/             # Server type definitions
β”‚   β”‚   └── world/              # World configuration & validation
β”‚   β”œβ”€β”€ network/                # Network configuration
β”‚   β”œβ”€β”€ runtime/                # System integrations
β”‚   β”‚   β”œβ”€β”€ java/               # Java installation & management
β”‚   β”‚   β”œβ”€β”€ scripts/            # Start script generation
β”‚   β”‚   └── session/            # Process & session management
β”‚   β”œβ”€β”€ servers/                # Server type implementations
β”‚   β”‚   β”œβ”€β”€ vanilla/            # Vanilla server support
β”‚   β”‚   β”œβ”€β”€ fabric/             # Fabric server support
β”‚   β”‚   └── forge/              # Forge server support
β”‚   β”œβ”€β”€ tui/                    # Bubble Tea UI components
β”‚   β”‚   β”œβ”€β”€ root.go             # Root model & screen management
β”‚   β”‚   β”œβ”€β”€ main_menu.go        # Main menu screen
β”‚   β”‚   β”œβ”€β”€ create_world.go     # World creation form
β”‚   β”‚   β”œβ”€β”€ creation_progress.go # Progress tracking screen
β”‚   β”‚   └── styles.go           # UI styles & theming
β”‚   └── utils/                  # Cross-platform utilities
β”‚       └── paths.go            # Path management
└── assets/                     # Screenshots & media

Supported Server Types

Server Type Description
Vanilla Official Minecraft server from Mojang
Fabric Lightweight modding toolchain
Forge Popular modding platform

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

About

🌍 Create, manage, and monitor Minecraft servers from your terminal β€” supports Paper, Fabric, Forge, and more.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages