Skip to content

Glowstone

Glowstone is an open-source server implementation for Minecraft: Java Edition 1.12.2 and up.

egg-glowstone.json

updated

Install

Installer image
eclipse-temurin:8-jdk
Install script
46 lines

Images

New servers use the first image. Users can change it on the Startup page.

  • Java 8 default ghcr.io/ptero-eggs/yolks:java_8
  • Java 11 ghcr.io/ptero-eggs/yolks:java_11
  • Java 16 ghcr.io/ptero-eggs/yolks:java_16
  • Java 17 ghcr.io/ptero-eggs/yolks:java_17
  • java 21 ghcr.io/ptero-eggs/yolks:java_21
  • java 22 ghcr.io/ptero-eggs/yolks:java_22
  • Java 25 ghcr.io/ptero-eggs/yolks:java_25

Startup

The Panel runs this command to start the server. It replaces each variable in the command with the value of that variable.

6 variables

Startup command

java -Xms768M -Xmx1024M -XX:+UseG1GC -jar glowstone.jar

Dotted values come from the server settings. These values are examples.

  • The name of the server jarfile to run the server with.

    SERVER_JARFILEUsers can edit

    required|regex:/^([\w\d._-]+)(\.jar)$/

  • The version of Glowstone to download. If it ends in SNAPSHOT, it will attempt to download from the maven repository.

    VERSIONUsers can edit

    required|string|max:20

  • GitHub user to use for api calls. This only needs to be set if you hit the GitHub API too often across multiple servers.

    GITHUB_USERUsers cannot see

    string|nullable

  • This can be either an OAuth or a Personal Access Token. This is required for the install is you set a user.

    GITHUB_OAUTH_TOKENUsers cannot see

    string|nullable

  • The repository to download from.

    GITHUB_PACKAGEUsers can see

    required|string

  • MATCHUsers cannot see

    required|string

Wings

Stop command
stop
Running when the console shows
Ready for connections.

Files Wings edits

Wings sets these values in these files before each start.

config/glowstone.yml yaml

server.port
{{server.build.default.port}}
console.prompt

Readme

Glowstone

Glowstone is an open-source replacement for CraftBukkit, Spigot, and Paper.

Ports

Similar to CraftBukkit and it's derivatives, it only requires a single port. Other plugins may require more ports.

Port default
Game 25565

Changes

  1. Adding java 25 to most minecraft eggs

    · Red-Banana-Official · fb0c032

  2. Updating MC docker images (#23)

    · Red Banana · 8f3fc4d

  3. Add Minecraft eggs

    · Daniel Barton · 7322302

All changes on GitHub

Problem with this egg?

Open an issue on GitHub. Include your Panel and Wings versions.

Install script 46 lines bash in eclipse-temurin:8-jdk Show
#!/bin/bash
# Server Files: /mnt/server
apt update
apt install -y jq curl

mkdir -p /mnt/server
cd /mnt/server

if [ $VERSION == *SNAPSHOT ]; then
  echo -e "Using Maven"
  
  DOWNLOAD_URL="https://repo.glowstone.net/service/rest/v1/search/assets/download?group=net.glowstone&name=glowstone&sort=version&repository=snapshots&maven.baseVersion=${VERSION}&direction=desc&maven.classifier="
else 
    echo -e "Using GitHub."

    if [ -z "${GITHUB_USER}" ] && [ -z "${GITHUB_OAUTH_TOKEN}" ] ; then
        echo -e "using anon api call"
    else
        echo -e "user and oauth token set"
        alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} '
    fi
    
    ## get release info and download links
    LATEST_JSON=$(curl --silent "https://api.github.com/repos/${GITHUB_PACKAGE}/releases/latest")
    RELEASES=$(curl --silent "https://api.github.com/repos/${GITHUB_PACKAGE}/releases")

    if [ -z "${VERSION}" ] || [ "${VERSION}" == "latest" ]; then
        DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})
    else
        VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .tag_name')
        if [ "${VERSION}" == "${VERSION_CHECK}" ]; then
            DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})
        else
            echo -e "defaulting to latest release"
            DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)
        fi
    fi
fi

echo -e "Downloading..."
curl --silent -L -o ${SERVER_JARFILE} ${DOWNLOAD_URL}

echo -e "Generating configuration..."
java -jar ${SERVER_JARFILE} --generate-config

echo -e "Install Complete"