Skip to content

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

 
 
 

Contributors

Languages