Skip to content

zNotChill/berry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Berry

Berry is a CLI tool for creating and managing Minecraft servers with great support for Paper, Velocity, and other server software.

Installation

Clone the repository and run ./install.bat or bash ./install.sh to install berry globally.

Commands

berry create

Create a new Minecraft server with custom options.

Usage:

$ berry create [options]

Flags:

Flag Description Default
-n, --name <name> Name of the server Prompted if not provided
-v, --version <version> Minecraft version Latest available for the chosen software
-b, --build <build> Specific server software build Latest available
-s, --software <software> Server software (Paper, Velocity) Prompted if not provided
-d, --dir <path> Server installation path Current working directory
-p, --port <port> Server port 25565
-a, --auto-start Automatically start server after installation false
--velocity Enable Velocity proxy support (Paper only) false
--velocity-secret <secret> Velocity forwarding secret (Paper only) Randomly generated if --velocity is enabled
--docker Use Docker for server Prompted if not provided
--no-docker Disable Docker false
--no-velocity Disable Velocity proxy (Paper only) false
--motd <motd> Server MOTD "A Minecraft Server"
--rcon Enable RCON false
--rcon-port <port> RCON port 25575
--rcon-password <password> RCON password Random if --rcon is enabled and no password is provided
-e, --eula Accept the Minecraft EULA Prompted if not provided

Notes:

  • Paper servers can use Velocity proxy with the --velocity flag.
  • If you do not provide a --velocity-secret or --rcon-password, a random secret/password will be generated automatically.
  • The --docker flag allows running servers inside Docker containers.
  • Ports default to 25565 for Minecraft servers and 25575 for RCON, but can be customized per server.

berry bulk

Create multiple servers from a JSON configuration file.

Usage:

berry bulk -f <file>

Flags:

Flag Description
-f, --file <path> Path to a JSON file containing multiple server configurations

Notes:

  • Supports the same configuration options as berry create.
  • Can automatically generate RCON passwords and Velocity secrets if set to "random" in the JSON file.
  • Processes servers in order to handle dependencies (e.g., copying Velocity secrets).

JSON Schema Example:

[
  {
    "name": "MyPaperServer",
    "softwareName": "Paper",
    "port": 25565,
    "motd": "Welcome to my server!",
    "eulaAccepted": true,
    "useDocker": false,
    "useVelocity": true,
    "velocitySecret": "copy MyVelocityProxy" // this is valid, and copies the secret from MyVelocityProxy
    "version": "1.20.1",
    "build": 123,
    "servers": ["EpicServer1", "EpicServer2"],
    "rcon": true,
    "rconPort": 25575,
    "rconPassword": "random"
  },
  {
    "name": "MyVelocityProxy",
    "softwareName": "Velocity",
    "port": 25577,
    "motd": "Velocity Proxy",
    "eulaAccepted": true,
    "useDocker": false,
    "useVelocity": false,
    "velocitySecret": "random",
    "rcon": false
  }
]

Field Definitions:

Field Type Description
name string Name of the server
softwareName string Name of the software (Paper, Velocity, etc.)
software object (optional) Software definition object populated internally
port number Server port
motd string Server MOTD
eulaAccepted boolean Whether the EULA is accepted
useDocker boolean Whether to run the server in Docker
useVelocity boolean Enable Velocity proxy support (Paper only)
velocitySecret string (optional) Velocity forwarding secret
version string (optional) Minecraft version
build number (optional) Specific server software build
servers string[] (optional) Dependent sub-servers or linked servers
rcon boolean Enable RCON
rconPort number (optional) RCON port
rconPassword string (optional) RCON password (can be "random" to auto-generate)

berry exec

Execute a console command on a running server via RCON.

Usage:

berry exec <server-name> <command...>

Notes:

  • The server must have RCON enabled (--rcon).
  • RCON must be supported by the server software.
  • Example:
berry exec myserver "say Hello, world!"

This will send a say "Hello, world!" command to the specified server.


General Notes

  • berry supports multiple server software types: Paper, Velocity.
  • Ports default to 25565 for Minecraft and 25575 for RCON but can be customized.
  • Velocity proxy is only supported for Paper servers.
  • Random secrets and passwords are generated when "random" is specified or not provided.

About

CLI tool for generating Minecraft servers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages