mcman

command module
v0.0.0-...-1d4e844 Latest Latest
Warning

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

Go to latest
Published: Jan 20, 2024 License: MIT Imports: 14 Imported by: 0

README

Lint and Test Create and publish a Docker image codecov

mcman (MineCraft server MANager)

Yet another Minecraft Server Manager for players.

Introduction

This mcman is a small toy project to provide the Web UI to manage a dedicated server for Minecraft Java Edition. It provides the features as follows:

  • Shows near-realtime top-view map in the Web UI with player positions.
  • Sends server command and prints the logs from Minecraft server in the Web UI.
  • Sends Minecraft server logs via webhook to Discord and Slack.

Enjoy!

Usage

You can use this project with Docker. If you want to use it without Docker, you can build it for yourself.

With Docker

You can simply run mcman server packed with Minecraft dedicated server as follows.

docker run \
    -v `pwd`/server-data:/mcman/data \
    -v `pwd`/config.yaml:/config.yaml \
    -p SOME_PORT:8000 \
    -p SOME_PORT:25565/udp \
    ghcr.io/doppiolab/mcman:{IMAGE_TAG}-amd64 \
    -config /config.yaml
  • check image tags in GitHub Packages
  • arm64 and amd64 are supported.
  • If you want to persist your server data, try to mount /mcman/data path. (or the value of minecraft.working_dir option)
Configuration file

It is recommended to write your own configuration file from ./docker/config.yaml.

# Server configuration
server:
    # Host to listen. default value is ":8000"
    host: 0.0.0.0:8000
    # Adjust log level to debug if set true.
    debug: false
    # path to static directory.
    # recommend not to change the value in docker env.
    static_path: /static
    # path to template directory.
    # recommend not to change the value in docker env.
    template_path: /templates
    # temp path.
    # this is used for caching the map images.
    temporary_path: /tmp
    # Environment variable key for initial password.
    # If password_env_key is not set or no env var named password_env_key, mcman generate random password and print it in the server log.
    password_env_key:
    # If set, listing and download page (/mods) for mods are enabled.
    export_mod_download_link: false

# Minecraft dedicated server configuration
minecraft:
    # java command or java binary path
    java_command: /usr/bin/java
    # minecraft server jar path.
    # It is recommended to use this path as absolute path,
    # since this is relative to working_dir value.
    jar_path: "/server-1.20.4.jar"
    # Working directory for minecraft server
    # Miencraft server will save the all server data into this directory.
    working_dir: "/mcman/data"
    # Java option.
    # If you want to add options like -Xms1024M, use this option.
    java_options:
        # - option1
        # - option2
    # Minecraft jar args.
    args:
        - nogui
    # Config used for development.
    # Do not use this for real usage.
    skip_start_for_debug:
    # Log webhook option.
    # If you want to stream the minecraft server log to your messenger, use this option.
    log_webhook:
        # Slack incoming webhook url
        slack: ""
        # Discord webhook url
        discord: ""
        # mcman will debounce the server log to avoid rate limiting.
        # mcman sends logs if no new logs occur during debounce_threshold.
        # unit: millisecond
        debounce_threshold: 100

Contributes

Check CONTRIBUTING.md

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
minecraft
Package minecraft is a generated GoMock package.
Package minecraft is a generated GoMock package.

Jump to

Keyboard shortcuts

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