Minecraft - Java Edition (Velocity) gameplay

Host a Minecraft - Java Edition (Velocity) Dedicated Server

Velocity is a high-performance Minecraft proxy server designed to connect multiple backend servers into a seamless network. Known for its modern architecture, strong security features, and excellent scalability. Supports modern player forwarding, plugin API, and automatic version resolution via the PaperMC API.

Hardware Requirements

Here's what you need to run a Minecraft - Java Edition (Velocity) dedicated server.

Standard

Small network, up to 100 players

CPU0.5 cores
RAM512 MB
Storage1 GB

Pro

Large network, 100-1000 players

CPU1 core
RAM1 GB
Storage1 GB

Start hosting from your own computer

Run a Minecraft - Java Edition (Velocity) server on your desktop, laptop, VPS, or dedicated machine — GameCP automates Docker setup, resource allocation, and Minecraft - Java Edition (Velocity) configuration instantly. Automatic port forwarding means your friends can connect without touching your router. Start local, scale to a VPS when you're ready.

Get Started FreeNo credit card required

Setup in 4 Steps

Skip the manual installation, port forwarding, and configuration. Install on your own computer and start hosting instantly.

The Manual Way vs. GameCP

Manual Setup

  • Configure 1+ firewall ports and router settings
  • Write systemd service files
  • SSH into server to edit configs
  • Requires a VPS or dedicated server
  • 30-60 minutes if experienced

With GameCP

  • Automatic port forwarding — no router config
  • Host from your own PC, VPS, or dedicated server
  • Docker container with auto-restart
  • Visual config editor in browser
  • Under 5 minutes total

Under the Hood

The full manual process to host a Minecraft - Java Edition (Velocity) dedicated server on a VPS. Or install GameCP on your own computer and skip all of this.

Step 1

Configure & Prepare

Set your server settings, then install Docker, and pull the Minecraft - Java Edition (Velocity) container image.

Server ConfigurationEdit values to update all commands
terminal
# Update system and install Docker
sudo apt update && sudo apt install -y docker.io
sudo systemctl enable --now docker

# Create game server directory
sudo mkdir -p /opt/gameserver

# Server configuration
export PLAYER_INFO_FORWARDING="modern"
export ONLINE_MODE="true"

# Pull the container image
docker pull eclipse-temurin:21-jre-alpine
Step 2

Run the Installation Script

Minecraft - Java Edition (Velocity) uses a custom install script to download and configure the server files.

Installation Script
#!/bin/bash

apt update
apt install -y wget curl jq

cd /opt/gameserver || { echo "Failed to change directory to /opt/gameserver"; exit 1; }

# Resolve Velocity version
VEL_VERSION="${VELOCITY_VERSION:-latest}"
VELOCITY_API="https://api.papermc.io/v2/projects/velocity"

if [ "$VEL_VERSION" = "latest" ]; then
  echo "Fetching latest Velocity version..."
  VEL_VERSION=$(curl -sSL "$VELOCITY_API" | jq -r '.versions[-1]')
  echo "Latest Velocity version: $VEL_VERSION"
else
  echo "Using specified version: $VEL_VERSION"
fi

# Verify version exists
VER_CHECK=$(curl -sSL "$VELOCITY_API" | jq -r --arg V "$VEL_VERSION" '.versions[] | select(. == $V)')
if [ -z "$VER_CHECK" ]; then
  echo "WARNING: Version $VEL_VERSION not found. Falling back to latest..."
  VEL_VERSION=$(curl -sSL "$VELOCITY_API" | jq -r '.versions[-1]')
fi

# Get latest build
echo "Fetching latest Velocity build for $VEL_VERSION..."
BUILD_INFO=$(curl -sSL "$VELOCITY_API/versions/$VEL_VERSION/builds")
LATEST_BUILD=$(echo "$BUILD_INFO" | jq -r '.builds[-1].build')
JAR_NAME=$(echo "$BUILD_INFO" | jq -r '.builds[-1].downloads.application.name')

if [ -z "$LATEST_BUILD" ] || [ "$LATEST_BUILD" = "null" ]; then
  echo "ERROR: Could not determine latest build for Velocity $VEL_VERSION!"
  exit 1
fi

DOWNLOAD_URL="$VELOCITY_API/versions/$VEL_VERSION/builds/$LATEST_BUILD/downloads/$JAR_NAME"
echo "Downloading Velocity $VEL_VERSION build $LATEST_BUILD..."
wget -q "$DOWNLOAD_URL" -O velocity.jar
echo "Velocity download completed."

# Generate forwarding secret if it doesn't exist
if [ ! -f forwarding.secret ]; then
  echo "Generating forwarding secret..."
  date +%s | sha256sum | base64 | head -c 24 > forwarding.secret
  echo "Forwarding secret created."
else
  echo "Forwarding secret already exists, keeping it."
fi

echo "Install Completed"
Step 3

Open Firewall Ports

Minecraft - Java Edition (Velocity) requires 1 port to be open for game traffic and queries.

terminal
sudo ufw allow 25565/tcp
25565/TCP(PORT)
Step 4

Launch the Server

Start the Minecraft - Java Edition (Velocity) server using the configuration from Step 1.

terminal
docker run -d \
  --name minecraft-java-velocity-server \
  -p 25565:25565/tcp \
  -e PLAYER_INFO_FORWARDING="modern" \
  -e ONLINE_MODE="true" \
  -v /opt/gameserver:/opt/gameserver \
  -w /opt/gameserver \
  eclipse-temurin:21-jre-alpine \
  java -Xmx -Xms -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -XX:MaxInlineLevel=15 -jar velocity.jar

Or skip all of this

GameCP automates every step above: Docker, port forwarding, startup, and config. Install on your own PC and deploy a Minecraft - Java Edition (Velocity) server in under 5 minutes.

Deploy with GameCP

Ready to Host Your Minecraft - Java Edition (Velocity) Server?

Install GameCP on your own computer and start hosting in minutes. Automatic port forwarding, zero config — your friends connect instantly.

No credit card required · Free tier available · Install local, scale later

Deploy Free