Skip to content

Repository files navigation

EZMC Logo

Build badgeCoverage badgeReliability badgeSecurity badgeVulnerabilities badgeBugs badgeBuy me a coffee badge

A server management CLI for self-hosting Minecraft Java Edition with AWS Elastic Container Service. This project is a wrapper around the AWS SDK and vatertime/minecraft-spot-pricing, a CloudFormation template for managing resources that provisions the itzg/docker-minecraft-server Docker image.

Example

Table of Contents

Features

  • Useful commands for orchestrating containers with the AWS SDK
  • Supports vanilla and modded servers
  • vatertime/minecraft-spot-pricing claims an inexpensive $10/mo for a server running full-time. However, it's recommended to stop the server when not in use to save money. Spot pricing is set to 5¢.

Prerequisites

Commands

CommandDescription
cipCopies a server's ip address to the clipboard.
ipDisplays a server's ip address.
lsLists your servers.
newCreates a new server. Wait 5 minutes for commands like ipaddr or status.
paramsGet/set server parameters.
rmRemoves a server (cannot be undone).
startStarts a server.
statusDisplays a server's status.
stopStops a server.
helpDisplays help.

Parameters

Notable Defaults

OptionValue
Max players10
DifficultyNormal
View Distance10
Game ModeSurvival
Level TypeDefault

Infrastructure

Resources are provisioned using your default AWS CLI profile, falling back to us-east-1 as a default region.

AWS Elastic Container Service is used to deploy the Minecraft image. EC2 instance(s) are spun up upon request and remain running until told to shutdown via the stop command (remove the server entirely with rm).

Contributors are not responsible for any AWS costs incurred from using this CLI. Use at your own discretion.

Each "server" is given its own networking stack and ECS cluster for simple clean up -- keeps it ez. By default, your AWS account will be limited to 5 VPCs. With the default VPC, and assuming zero other provisioned resources, that means you can have a maximum of 4 servers operating simulateously.

Contributing

Pull Requests

Pull requests are welcomed. Please leave detailed reasoning for your change. Bugs should include reproduction steps. OS can sometimes be helpful but this project lets commander.js manage cross-platform compatibility.

Development

git clone git@github.com:jseashell/ezmc-cli.git
npm install
npm run build
chmod +x bin/*
node bin/index.js ls
# optional, use like a normal global package
npm link
ezmc ls

License

This project is distributed under the terms of the MIT License.

About

A server management CLI for self-hosting a Minecraft Java server with AWS Elastic Container Service.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages