Velocity
GamesVelocity is a Minecraft server proxy with unparalleled server support, scalability, and flexibility.
README
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 |
Docker Images (6)
| Name | Image |
|---|---|
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 |
Startup Command
java -Xms128M -Xmx{{SERVER_MEMORY}}M -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -XX:MaxInlineLevel=15 -jar {{SERVER_JARFILE}} Variables (4)
Velocity Version
The Velocity Proxy version to download. Set to 'latest ' the download the last stable build.
- Environment:
VELOCITY_VERSION- Default:
latest- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:20
Server Jar File
Server Jarfile, by default this is set to 'velocity.jar'. Set it to otherwise if you wish to have a different jarfile name.
- Environment:
SERVER_JARFILE- Default:
velocity.jar- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:32|regex:/^([\w\d._-]+)(\.jar)$/
Download Path
A URL to use to download a server.jar rather than the ones in the install script. This is not user viewable.
- Environment:
DL_PATH- Default:
None- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
nullable|string
Build Number
The build number for the velocity release. Leave at latest to always get the latest version. Invalid versions will default to latest.
- Environment:
BUILD_NUMBER- Default:
latest- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:20
Installation Script
ghcr.io/ptero-eggs/installers:alpineash#!/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"