Skip to content
main
Switch branches/tags
Code

minectl ๐Ÿ—บ

Minecraft Go Scaleway DigitalOcean Civo Prometheus Build Binary

minectl๏ธ?๏ธ? is a cli for creating Minecraft (java or bedrock) server on different cloud provider.

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

TL;DR ๐Ÿš€

Install via homebrew:

brew tap dirien/homebrew-dirien
brew install minectl

Linux or Windows user, can directly download (or use curl/wget) the binary via the release page.

Usage โš™

Access Token

minectl is completely build on zero-trust. It does not save any API Tokens, instead it looks them up in the ENV variables.

Civo
export CIVO_TOKEN=xx
Digital Ocean
export DIGITALOCEAN_TOKEN=xxx
Scaleway
export ACCESS_KEY=xxx
export SECRET_KEY=yyy
export ORGANISATION_ID=zzz

Server Config ๐Ÿ“‹

You need a MinecraftServer manifest file, to define some informations regarding the VM and the Minecraft Server:

apiVersion: ediri.io/minectl/v1alpha1
kind: MinecraftServer
metadata:
  name: minecraft-server
spec:
  server:
    cloud: "provider: civo|scaleway|do"
    region: "region see cloud provider for details eg. fra1"
    size: "see cloud provider docs for details eg. g3.large"
    volumeSize: 100
    ssh: "<path to>/ssh.pub"
  minecraft:
    java:
      xmx: 2G
      xms: 2G
      rcon:
        password: test
        port: 25575
        enabled: true
        broadcast: true
    edition: "java|bedrock"
    properties: |
      level-seed=stackitminecraftrocks
      broadcast-rcon-to-ops=true
      ...

I created some example configs in the config folder for currently supported cloud provider and Minecraft editions.

Create Minecraft Server ๐Ÿ?—

minectl create -h

Create an Minecraft Server.

Usage:
  minectl create [flags]

Examples:
mincetl create  \
    --filename server-do.yaml

Flags:
  -f, --filename string   Contains the configuration for minectl
  -h, --help              help for create

Delete Minecraft Server ๐Ÿ—‘

minectl delete -h

Delete an Minecraft Server.

Usage:
  minectl delete [flags]

Examples:
mincetl delete  \
    --filename server-do.yaml
    --id xxx-xxx-xxx-xxx
        

Flags:
  -f, --filename string   that contains the configuration for minectl
  -h, --help              help for delete
      --id string         contains the server id

Monitoring ๐Ÿ“Š

Every instance of minectl ๐Ÿ—บ, has following monitoring components included:

The edition:java has on top following exporter included:

You can acces the prometheus via

http://<ip>:9090/graph

Getting Started

Supported cloud provider โ˜?

Known Limitation ๐Ÿ˜ต

minectl is still under development and supports only creation and deletion of server. There is no mod or plugin functionality for the Minecraft servers.

Contributing ๐Ÿค?

Contributing via GitHub

Feel free to join.

License

Apache License, Version 2.0

Roadmap ๐Ÿ›ฃ๏ธ?

  • Support Bedrock edition #10
  • Add monitoring capabilities to minectl server #21
  • List Minecraft Server
  • Update Minecraft Server
  • Support Mods and Plugins
  • Add additional cloud provider
  • ...

Libraries & Tools ๐Ÿ”ฅ

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.

About

minectl ๐Ÿ—บ is a cli for creating Minecraft (java or bedrock) server on different cloud provider.

Topics

Resources

License

Packages

No packages published