Velocity is a Minecraft server proxy with unparalleled server support, scalability, and flexibility.
Velocity is a Minecraft server proxy with unparalleled server support, scalability, and flexibility.
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 |
Name | Tag |
---|---|
Java 22 | ghcr.io/ptero-eggs/yolks:java_22 |
Java 21 | ghcr.io/ptero-eggs/yolks:java_21 |
Java 17 | ghcr.io/ptero-eggs/yolks:java_17 |
Java 16 | ghcr.io/ptero-eggs/yolks:java_16 |
Java 11 | ghcr.io/ptero-eggs/yolks:java_11 |
Java 8 | ghcr.io/ptero-eggs/yolks:java_8 |
The Velocity Proxy version to download. Set to 'latest ' the download the last stable build.
Server Jarfile, by default this is set to 'velocity.jar'. Set it to otherwise if you wish to have a different jarfile name.
A URL to use to download a server.jar rather than the ones in the install script. This is not user viewable.
The build number for the velocity release. Leave at latest to always get the latest version. Invalid versions will default to latest.
#!/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"
Installation Image | ghcr.io/ptero-eggs/installers:alpine | Installation Entrypoint | ash |
---|