mcworker

module
v0.0.0-...-1cc5353 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 26, 2026 License: MIT

README ΒΆ

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

Directories ΒΆ

Path Synopsis
cmd
cli command
internal
app
Package app provides application-level orchestration for MineWorker.
Package app provides application-level orchestration for MineWorker.
config
Package config provides the global application configuration for MineWorker.
Package config provides the global application configuration for MineWorker.
domain/server
Package server provides server type registration and lookup.
Package server provides server type registration and lookup.
domain/world
Package world provides the core world domain types and operations.
Package world provides the core world domain types and operations.
network
Package network provides network configuration for Minecraft servers.
Package network provides network configuration for Minecraft servers.
runtime/java
Package java provides Java installation management for MineWorker.
Package java provides Java installation management for MineWorker.
runtime/scripts
Package scripts provides script generation for Minecraft servers.
Package scripts provides script generation for Minecraft servers.
runtime/session
Package session provides session management for running Minecraft servers.
Package session provides session management for running Minecraft servers.
servers
Package servers imports all server implementations to register them.
Package servers imports all server implementations to register them.
servers/fabric
Package fabric implements the Fabric mod loader server type.
Package fabric implements the Fabric mod loader server type.
servers/forge
Package forge implements the Minecraft Forge mod loader server type.
Package forge implements the Minecraft Forge mod loader server type.
servers/vanilla
Package vanilla implements the vanilla Minecraft server type.
Package vanilla implements the vanilla Minecraft server type.
tui
utils
Package utils provides cross-platform path management for MineWorker.
Package utils provides cross-platform path management for MineWorker.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL