MCPcopy Index your code
hub / github.com/dirien/minectl

github.com/dirien/minectl @v0.61.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.61.0 ↗ · + Follow
118 symbols 379 edges 20 files 30 documented · 25%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

New - 1.21.11 support

minectl 🗺️️ supports the Minecraft 1.21.11 version

logo

minectl 🗺

minectl

Minecraft Go Ubuntu Prometheus Scaleway DigitalOcean Civo Akamai Connected Cloud Hetzner OVH Google Cloud Vultr Microsoft Azure Oracle Cloud Infrastructure Amazon AWS VEXXHOST Multipass Exoscale Fuga Cloud

Go Reference Go Report Card

GitHub Workflow Status (main) GitHub Quality Gate Status OpenSSF Scorecard CII Best Practices

GitHub release (latest by date)

Artifact Hub

minectl 🗺️️ is a CLI for creating Minecraft servers on different cloud providers.

It is a private side project of me, to learn more about Go, CLI and multi-cloud environments.

Table of Contents

Supported Cloud Providers

Provider Website
Civo https://www.civo.com/
Scaleway https://www.scaleway.com
DigitalOcean https://www.digitalocean.com/
Hetzner https://www.hetzner.com/
Akamai Connected Cloud https://www.linode.com/
OVHCloud https://www.ovh.com/
Google Compute Engine (GCE) https://cloud.google.com/compute
Azure https://azure.microsoft.com/en-us/
Oracle Cloud Infrastructure https://www.oracle.com/cloud/
Amazon AWS https://aws.amazon.com/
VEXXHOST https://vexxhost.com/
Multipass https://multipass.run/
Exoscale https://www.exoscale.com/
Fuga Cloud https://fuga.cloud/

Quick Start

Installation

Linux/macOS (Installation Script)

curl -sLS https://get.minectl.dev | sudo sh

or without sudo:

curl -sLS https://get.minectl.dev | sh

macOS (Homebrew)

brew tap dirien/homebrew-dirien
brew install minectl

Windows (PowerShell)

# Create directory
New-Item -Path "$HOME/minectl/cli" -Type Directory
# Download file
Start-BitsTransfer -Source https://github.com/dirien/minectl/releases/download/v0.7.0/minectl_0.7.0_windows_amd64.zip -Destination "$HOME/minectl/cli/."
# Uncompress zip file
Expand-Archive $HOME/minectl/cli/*.zip -DestinationPath $HOME/minectl/cli/.
# Add to Windows Environment Variables
[Environment]::SetEnvironmentVariable("Path",$($env:Path + ";$Home\minectl\cli"),'User')

From Source

git clone https://github.com/dirien/minectl
cd minectl
make build

Create Your First Server

  1. Set up authentication for your cloud provider (see docs)

  2. Create a config file using the wizard: bash minectl wizard

  3. Create the server: bash minectl create --filename server.yaml

  4. Connect and play!

asciicast

Documentation

Document Description
Architecture High-level architectural overview
Authentication Cloud provider credentials setup
Configuration Server and proxy configuration reference
CLI Reference All commands and flags
Editions Supported Minecraft server and proxy editions
Features Monitoring, volumes, security, and more

Getting Started Guides

Known Limitations

minectl 🗺 is still under development. There will be the possibility for breaking changes.

Contributing

Feel free to join! See our contribution guidelines.

License: Apache License, Version 2.0

Roadmap

  • [x] Support Bedrock edition #10
  • [x] Add monitoring capabilities #21
  • [x] List Minecraft Server #11
  • [x] Update Minecraft Server #12
  • [x] Hetzner support #26
  • [x] Linode support #31
  • [x] OVHCloud support #43
  • [x] GCE support #55
  • [x] Modded editions #20
  • [x] Vultr support #90
  • [x] Proxy servers (BungeeCord/Waterfall) #95
  • [x] Azure support #56
  • [x] Oracle/OCI support #107
  • [x] AWS support #210
  • [ ] Much more to come...

Libraries & Tools

Click to expand

  • https://github.com/charmbracelet/bubbletea
  • https://github.com/charmbracelet/lipgloss
  • https://github.com/charmbracelet/huh
  • https://github.com/charmbracelet/bubbles
  • https://github.com/melbahja/goph
  • https://github.com/spf13/cobra
  • https://github.com/goreleaser
  • https://github.com/civo/civogo
  • https://github.com/digitalocean/godo
  • https://github.com/scaleway/scaleway-sdk-go
  • https://github.com/linode/linodego
  • https://github.com/hetznercloud/hcloud-go
  • https://github.com/sethvargo/go-password
  • https://github.com/ovh/go-ovh
  • https://github.com/dirien/ovh-go-sdk
  • https://github.com/hashicorp/go-retryablehttp
  • https://github.com/googleapis/google-api-go-client
  • https://github.com/Masterminds/sprig
  • https://github.com/Tnze/go-mc
  • https://github.com/c-bata/go-prompt
  • https://github.com/vultr/govultr
  • https://github.com/Azure/azure-sdk-for-go
  • https://github.com/blang/semver
  • https://github.com/tcnksm/go-latest
  • https://github.com/uber-go/zap
  • https://github.com/oracle/oci-go-sdk
  • https://github.com/aws/aws-sdk-go-v2
  • https://github.com/gophercloud/gophercloud
  • https://github.com/exoscale/egoscale

Legal Disclaimer

This project is not affiliated with Mojang Studios, XBox Game Studios, Double Eleven or the Minecraft brand.

"Minecraft" is a trademark of Mojang Synergies AB.

Other trademarks referenced herein are property of their respective owners.

Stargazers over time

Stargazers over time

Extension points exported contracts — how you extend this code

RCONer (Interface)
(no doc) [1 implementers]
internal/rcon/rcon.go
Provisioner (Interface)
(no doc) [1 implementers]
internal/provisioner/provisioner.go

Core symbols most depended-on inside this repo

Info
called by 14
internal/ui/ui.go
String
called by 13
internal/ui/table.go
Error
called by 12
internal/logging/logging.go
Render
called by 9
internal/ui/table.go
NewSpinner
called by 8
internal/ui/spinner.go
Stop
called by 7
internal/ui/spinner.go
RunFunc
called by 7
cmd/minectl/minectl.go
Append
called by 6
internal/ui/table.go

Shape

Function 63
Method 39
Struct 13
Interface 2
TypeAlias 1

Languages

Go100%

Modules by API surface

internal/provisioner/provisioner.go22 symbols
cmd/minectl/minectl.go17 symbols
internal/ui/table.go10 symbols
internal/ui/spinner.go9 symbols
internal/ui/ui.go8 symbols
internal/rcon/rcon.go7 symbols
internal/logging/logging.go6 symbols
internal/ui/ui_test.go5 symbols
internal/manifest/manifest.go5 symbols
internal/ui/table_test.go4 symbols
internal/ui/spinner_test.go4 symbols
cmd/minectl/plugins.go4 symbols

For agents

$ claude mcp add minectl \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact