Code Monkey home page Code Monkey logo

minecraft-preempt's Introduction

minecraft-preempt

A lightweight Minecraft server manager. Starts a server when users join, and stops them when they leave.

Supported Clouds

  • gcp
  • docker

Usage

Hint: There's an example configuration in ./config.

First, define a configuration file for your server. The format is like so:

Top level

Key Description
listenAddress The address to listen on.
servers Array of all servers

Server

Key Description
hostname The hostname of the server.
listenAddress The address to listen on.
gcp The GCP configuration
docker The Docker configuration
whitelist List of users allowed to connect

Cloud Configurations

GCP

Key Description
project The GCP project ID
zone The GCP zone
instance The GCP instance name

Docker

Key Description
containerID Container ID or name

Specifying a configuration can be done with --config, for a file path. Or, for serverless environments, the config can be specified with the CONFIG environment variable.

License

GPL-3.0

minecraft-preempt's People

Contributors

renovate[bot] avatar jaredallard avatar george-e-shaw-iv avatar

Stargazers

noahdw1 avatar Kyler Nelson avatar Luke Simmons avatar Peter Cunha avatar Alex Jackson avatar Thomas avatar noa avatar James Martindale avatar muuk avatar  avatar TJ Horner avatar Gian Saß avatar Jordan Sne (Mathewson) avatar Jonas Zohren avatar Ryan avatar Pranav Maddula avatar Robertus Suhendro avatar Roberto Salas avatar Gabriel Simmer avatar Kody avatar

Watchers

James Cloos avatar  avatar TJ Horner avatar  avatar

minecraft-preempt's Issues

Change config loading logic

Currently the config is loaded relative from where the binary is located, which may not necessarily be the current directory. It should be changed so that it is loaded relative to the user's current directory. It would also be nice to have a flag to indicate where the config is stored.

Support multiple IPs / Ports

Minecraft servers can run on any port, and be dedicated to an interface's IP (e.g a Minecraft host that does shared hosting will assign multiple blocks of IPs to a dedicated box), so this proxy should probably support it (somehow). Preferably from a YAML file as this is how other Minecraft server things handle configuration (plugins, modded servers, etc).

Right now it only listens on 0.0.0.0:25565, I'm willing to look into this in my off time since it's probably not high priority ;)

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

docker-compose
docker-compose.yml
dockerfile
Dockerfile
  • alpine 3.20
  • alpine 3.20
github-actions
.github/workflows/release.yaml
  • actions/checkout v4
  • jdx/mise-action v2
  • docker/login-action v3
  • fregante/setup-git-user v2
  • trstringer/manual-approval v1
  • goreleaser/goreleaser-action v6
.github/workflows/tests.yaml
  • actions/checkout v4
  • jdx/mise-action v2
  • codecov/codecov-action v4
  • actions/checkout v4
  • jdx/mise-action v2
  • golangci/golangci-lint-action v6
gomod
go.mod
  • go 1.21
  • cloud.google.com/go/compute v1.27.5
  • cloud.google.com/go/compute/metadata v0.5.0
  • github.com/Tnze/go-mc v1.20.2
  • github.com/charmbracelet/log v0.4.0
  • github.com/docker/docker v27.1.2+incompatible
  • github.com/egym-playground/go-prefix-writer v0.0.0-20180609083313-7326ea162eca@7326ea162eca
  • github.com/function61/gokit v0.0.0-20240419102346-a5f721139a62@a5f721139a62
  • github.com/pkg/errors v0.9.1
  • github.com/spf13/cobra v1.8.1
  • gopkg.in/yaml.v3 v3.0.1
mise
.mise.toml
  • golang 1.23.0
  • shfmt 3
  • golangci-lint 1.60.1

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.