Velocity
Velocity is a Minecraft server proxy with unparalleled server support, scalability, and flexibility.
Ports
Add an allocation on the node for each port.
- Game 25565
Install
- Installer image
- ghcr.io/ptero-eggs/installers:alpine
- Install script
- 63 lines
Images
New servers use the first image. Users can change it on the Startup page.
- Java 22 default 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
Panel features
- eula
The Panel asks the user to accept the Minecraft EULA when the server needs it.
- java_version
The Panel lets the user change the Java version when the server needs a different one.
- pid_limit
The Panel tells the user when the server reaches its process or memory limit.
Startup
The Panel runs this command to start the server. It replaces each variable in the command with the value of that variable.
4 variables
Startup command
java -Xms128M -Xmx1024M -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -XX:MaxInlineLevel=15 -jar velocity.jarDotted values come from the server settings. These values are examples.
The Velocity Proxy version to download. Set to 'latest ' the download the last stable build.
VELOCITY_VERSIONUsers can see
required|string|max:20
Server Jarfile, by default this is set to 'velocity.jar'. Set it to otherwise if you wish to have a different jarfile name.
SERVER_JARFILEUsers can see
required|string|max:32|regex:/^([\w\d._-]+)(\.jar)$/
A URL to use to download a server.jar rather than the ones in the install script. This is not user viewable.
DL_PATHUsers cannot see
nullable|string
The build number for the velocity release. Leave at latest to always get the latest version. Invalid versions will default to latest.
BUILD_NUMBERUsers can edit
required|string|max:20
Wings
- Stop command
- end
- Running when the console shows
- Done (
Files Wings edits
Wings sets these values in these files before each start.
velocity.toml file
- bind =
- bind = "0.0.0.0:{{server.build.default.port}}"
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 |
Changes
- Velocity: Use v3 API (#475)
· TezLie · 4e10c2f
- Update paper API URLs (#38)
· Daniel Barton · d4465ee
- Updating MC docker images (#23)
· Red Banana · 8f3fc4d
- Validate and update embedded URLs
· Daniel Barton · bf9f3cb
- fixie pixie 🐟
· yesBad · 73a886f
- SteamCMD + Other fixes
· yesBad · edbf925
Problem with this egg?
Open an issue on GitHub. Include your Panel and Wings versions.
Install script 63 lines ash in ghcr.io/ptero-eggs/installers:alpine Show Hide
#!/bin/ash
# Velocity Proxy Installation Script
#
# Server Files: /mnt/server
PROJECT=velocity
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://fill.papermc.io/v3/projects/${PROJECT} | jq -r --arg VERSION $VELOCITY_VERSION '.versions | any(.[]; index($VERSION))' | grep -m1 true`
LATEST_VERSION=`curl -s https://fill.papermc.io/v3/projects/${PROJECT} | jq -r '.versions | to_entries | .[0].value[0]'`
if [ "${VER_EXISTS}" == "true" ]; then
echo -e "Version is valid. Using version ${VELOCITY_VERSION}"
else
echo -e "Specified version not found. Defaulting to the latest ${PROJECT} version"
VELOCITY_VERSION=${LATEST_VERSION}
fi
BUILD_EXISTS=`curl -s https://fill.papermc.io/v3/projects/${PROJECT}/versions/${VELOCITY_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep -m1 true`
LATEST_BUILD=`curl -s https://fill.papermc.io/v3/projects/${PROJECT}/versions/${VELOCITY_VERSION} | jq -r '.builds' | jq -r '.[0]'`
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
echo "Version being downloaded"
echo -e "Project: ${PROJECT}"
echo -e "Velocity Version: ${VELOCITY_VERSION}"
echo -e "Build: ${BUILD_NUMBER}"
DOWNLOAD_URL=`curl -s https://fill.papermc.io/v3/projects/${PROJECT}/versions/${VELOCITY_VERSION}/builds/${BUILD_NUMBER} | jq -r '.downloads."server:default".url'`
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"