A drop-in replacement for Paper servers designed for configurability, and new fun and exciting gameplay features, with the addition of GeyserMC and Floodgate
Purpur-GeyserMC-Floodgate is a drop-in replacement for Paper servers designed for configurability, and new fun and exciting gameplay features, with the addition of GeyserMC and Floodgate
Purpur GitHub Purpur Website GeyserMC/Floodgate Website GeyserMC GitHub Floodgate GitHub
The minecraft server requires a single port for access (default 25565). GeyserMC requires an additional port (default 19132). Any other plugins you add may require extra ports to enabled for the server.
| Port | default | Protocol |
|---|---|---|
| Java | 25565 | TCP |
| Bedrock | 19132 | UDP |
| Name | Tag |
|---|---|
| Java 8 | 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 |
The version of Minecraft to download. Leave at latest to always get the latest version. Invalid versions will default to latest.
The name of the .jar file to run the server with.
The build number for the Purpur release. Leave at latest to always get the latest version. Invalid versions will default to latest-stable. Accepted values: 'latest-stable' 'latest-successful'
#!/bin/ash
# Paper Installation Script
#
# Server Files: /mnt/server
PROJECT=purpur
# Download paths for Geyser and Floodgate. Do not change!!
GEYSER_DOWNLOAD_URL="https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot"
FLOODGATE_DOWNLOAD_URL="https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/spigot"
if [ -n "${DL_PATH}" ]; then
echo -e "Using supplied download url: ${DL_PATH}"
DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's/{{/${/g' -e 's/}}/}/g')`
else
VER_EXISTS=`curl -s https://api.purpurmc.org/v2/${PROJECT} | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | contains($VERSION)' | grep true`
LATEST_VERSION=`curl -s https://api.purpurmc.org/v2/${PROJECT} | jq -r '.versions' | jq -r '.[-1]'`
if [ "${VER_EXISTS}" == "true" ]; then
echo -e "Version is valid. Using version ${MINECRAFT_VERSION}"
else
echo -e "Using the latest ${PROJECT} version"
MINECRAFT_VERSION=${LATEST_VERSION}
fi
BUILD_EXISTS=`curl -s https://api.purpurmc.org/v2/${PROJECT}/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all | tostring | contains($BUILD)' | grep true`
LATEST_BUILD=`curl -s https://api.purpurmc.org/v2/${PROJECT}/${MINECRAFT_VERSION} | jq -r '.builds.latest'`
if [ "${BUILD_EXISTS}" == "true" ]; then
echo -e "Build is valid for version ${MINECRAFT_VERSION}. Using build ${BUILD_NUMBER}"
else
echo -e "Using the latest ${PROJECT} build for version ${MINECRAFT_VERSION}"
BUILD_NUMBER=${LATEST_BUILD}
fi
JAR_NAME=${PROJECT}-${MINECRAFT_VERSION}-${BUILD_NUMBER}.jar
echo "Version being downloaded"
echo -e "MC Version: ${MINECRAFT_VERSION}"
echo -e "Build: ${BUILD_NUMBER}"
echo -e "JAR Name of Build: ${JAR_NAME}"
DOWNLOAD_URL=https://api.purpurmc.org/v2/${PROJECT}/${MINECRAFT_VERSION}/${BUILD_NUMBER}/download
fi
cd /mnt/server
echo -e "Downloading the requested purpur buid with curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}"
if [ -f ${SERVER_JARFILE} ]; then
mv ${SERVER_JARFILE} ${SERVER_JARFILE}.old
fi
mkdir -p /mnt/server/plugins
curl -sSL-o ${SERVER_JARFILE} ${DOWNLOAD_URL}
echo -e "Downloading last successful build with curl -o plugins/geyser-spigot ${GEYSER_DOWNLOAD_URL}"
curl -sSL -L plugins/geyser-spigot.jar ${GEYSER_DOWNLOAD_URL}
echo -e "Downloading last successful build with curl -o plugins/floodgate-spigot.jar ${FLOODGATE_DOWNLOAD_URL}"
curl -sSL -L plugins/floodgate-spigot.jar ${FLOODGATE_DOWNLOAD_URL}
if [ ! -f server.properties ]; then
echo -e "Downloading MC server.properties"
curl -o server.properties https://raw.githubusercontent.com/ptero-eggs/game-eggs/main/minecraft/java/server.properties
fi
echo -e "Installation Finished"| Installation Image | ghcr.io/ptero-eggs/installers:alpine | Installation Entrypoint | ash |
|---|