Egg Repository

Pterodactyl Community Egg Repository

Velocity

Velocity is a Minecraft server proxy with unparalleled server support, scalability, and flexibility.

Read Me

Velocity Minecraft Proxy

Velocity is a Minecraft server proxy with unparalleled server support, scalability, and flexibility.

Server Ports

The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server.

Port default
Game 25565
Yolks
NameTag
Java 22ghcr.io/ptero-eggs/yolks:java_22
Java 21ghcr.io/ptero-eggs/yolks:java_21
Java 17ghcr.io/ptero-eggs/yolks:java_17
Java 16ghcr.io/ptero-eggs/yolks:java_16
Java 11ghcr.io/ptero-eggs/yolks:java_11
Java 8ghcr.io/ptero-eggs/yolks:java_8
Variables
NameDescriptionEnvironment VariableDefault ValueUser ViewableUser Editable
Velocity VersionThe Velocity Proxy version to download. Set to 'latest ' the download the last stable build.VELOCITY_VERSIONlatestYesNo
Server Jar FileServer Jarfile, by default this is set to 'velocity.jar'. Set it to otherwise if you wish to have a different jarfile name.SERVER_JARFILEvelocity.jarYesNo
Download PathA URL to use to download a server.jar rather than the ones in the install script. This is not user viewable.DL_PATHNoNo
Build NumberThe build number for the velocity release. Leave at latest to always get the latest version. Invalid versions will default to latest.BUILD_NUMBERlatestYesYes
Install Script
#!/bin/ash
# Velocity Proxy Installation Script
#
# Server Files: /mnt/server
PROJECT=velocity

if [[ -z ${VELOCITY_VERSION} ]] || [[ ${VELOCITY_VERSION} == "latest" ]]; then
    VELOCITY_VERSION="latest"
fi

if [[ -n "${DOWNLOAD_LINK}" ]]; then
    echo -e "Using supplied download url: ${DOWNLOAD_LINK}"
    DOWNLOAD_URL=$(eval echo $(echo ${DL_PATH} | sed -e 's/{{/${/g' -e 's/}}/}/g'))
else
    VER_EXISTS=$(curl -s https://api.papermc.io/v2/projects/${PROJECT} | jq -r --arg VERSION $VELOCITY_VERSION '.versions[] | contains($VERSION)' | grep true)
    LATEST_VERSION=$(curl -s https://api.papermc.io/v2/projects/${PROJECT} | jq -r '.versions' | jq -r '.[-1]')

if [[ "${VER_EXISTS}" == "true" ]]; then
    echo -e "Version is valid. Using version ${VELOCITY_VERSION}"
else
    echo -e "Using the latest ${PROJECT} version"
    VELOCITY_VERSION=${LATEST_VERSION}
fi

BUILD_EXISTS=$(curl -s https://api.papermc.io/v2/projects/${PROJECT}/versions/${VELOCITY_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep true)
LATEST_BUILD=$(curl -s https://api.papermc.io/v2/projects/${PROJECT}/versions/${VELOCITY_VERSION} | jq -r '.builds' | jq -r '.[-1]')

if [[ "${BUILD_EXISTS}" == "true" ]]; then
    echo -e "Build is valid for version ${VELOCITY_VERSION}. Using build ${BUILD_NUMBER}"
else
    echo -e "Using the latest ${PROJECT} build for version ${VELOCITY_VERSION}"
    BUILD_NUMBER=${LATEST_BUILD}
fi

JAR_NAME=${PROJECT}-${VELOCITY_VERSION}-${BUILD_NUMBER}.jar
echo "Version being downloaded"
echo -e "Velocity Version: ${VELOCITY_VERSION}"
echo -e "Build: ${BUILD_NUMBER}"
echo -e "JAR Name of Build: ${JAR_NAME}"
DOWNLOAD_URL=https://api.papermc.io/v2/projects/${PROJECT}/versions/${VELOCITY_VERSION}/builds/${BUILD_NUMBER}/downloads/${JAR_NAME}

fi
cd /mnt/server
echo -e "Running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}"

if [[ -f ${SERVER_JARFILE} ]]; then
mv ${SERVER_JARFILE} ${SERVER_JARFILE}.old
fi

curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}

if [[ -f velocity.toml ]]; then
    echo -e "velocity config file exists"
else
    echo -e "downloading velocity config file."
    curl https://raw.githubusercontent.com/ptero-eggs/game-eggs/main/minecraft/proxy/java/velocity/velocity.toml -o velocity.toml
fi

if [[ -f forwarding.secret ]]; then
    echo -e "velocity forwarding secret file already exists"
else
    echo -e "creating forwarding secret file"
    touch forwarding.secret
    date +%s | sha256sum | base64 | head -c 12 > forwarding.secret
fi

echo -e "install complete"