High-performance, multithreaded Minecraft server written in Rust, featuring comprehensive vanilla parity across Java 1.21.4.
Server address:
pumpkinmc.dnslab.win
Supported versions: Java Edition 1.7.2โ26.2
Recommended version: Java Edition 1.21.4
Location: Singapore
Server hardware: 2 vCPU (Arm Neoverse-N1) and 11 GiB RAMAdd the address in Multiplayer โ Add Server. For the most thoroughly tested experience and best compatibility, connect with an unmodified 1.21.4 client.
The public test server (
pumpkinmc.dnslab.win) is currently self-funded on a modest ARM64 VPS (2 vCPU, 11 GiB RAM).If you'd like to support the project or help upgrade the hosting infrastructure, you can buy us a coffee:
If you find any bug, crash, disconnect, Vanilla behavior mismatch, or other issue while playing on the Pumpkin server, please create a super-detailed GitHub issue. Include what happened, what you expected, your exact Minecraft version, reproduction steps, relevant logs or screenshots, and whether the problem happens consistently.
If you know how to fix the problem, please also submit a pull request containing the solution, focused tests, and a clear explanation of how you validated it.
Follow these steps to compile, run, and configure the standalone 64-bit Windows binary (pumpkin.exe).
- Rust Toolchain: Install from rustup.rs (default:
stable-x86_64-pc-windows-msvc). - C++ Build Tools: Visual Studio C++ Build Tools (Desktop development with C++ workload).
- Git: Ensure
gitis available in PATH.
Open PowerShell or Command Prompt in the repository folder:
cargo build -p pumpkinOutput location: target\debug\pumpkin.exe
cargo build --release -p pumpkinOutput location: target\release\pumpkin.exe
.\target\release\pumpkin.exeOn first launch, Pumpkin will automatically:
- Initialize world dimensions (
minecraft:overworld,minecraft:the_nether,minecraft:the_end). - Generate default configuration templates (
pumpkin.toml,ops.json). - Bind to network address
0.0.0.0:25565.
Key configuration parameters in pumpkin.toml:
[server]
address = "0.0.0.0:25565" # Server listening address & port
max_players = 100 # Maximum simultaneous players
view_distance = 10 # Chunk simulation & render distance
simulation_distance = 10 # Entity & redstone tick distance
[proxy]
enabled = false # Set to true for BungeeCord / Velocity
online_mode = true # Microsoft/Mojang online authenticationTo bundle pumpkin.exe into a clean zip archive for distribution:
# Create staging folder and copy files
New-Item -ItemType Directory -Path ".\dist" -Force | Out-Null
Copy-Item ".\target\release\pumpkin.exe" ".\dist\pumpkin.exe"
Copy-Item ".\pumpkin.toml" ".\dist\pumpkin.sample.toml"
Copy-Item ".\README.md" ".\dist\README.md"
# Package zip
Compress-Archive -Path ".\dist\*" -DestinationPath ".\pumpkin-windows-x86_64.zip" -CompressionLevel Optimal
Remove-Item -Recurse -Force ".\dist"Deploy Pumpkin in isolated, containerized environments using Docker and Docker Compose.
Run the pre-built multi-arch image directly:
docker run -it --rm \
-p 25565:25565 \
-v $(pwd)/pumpkin_data:/pumpkin \
ghcr.io/potatosips/pumpkin:latestdocker run -d \
--name pumpkin-server \
--restart unless-stopped \
-p 25565:25565 \
-v $(pwd)/pumpkin_data:/pumpkin \
ghcr.io/potatosips/pumpkin:latestservices:
pumpkin:
image: ghcr.io/potatosips/pumpkin:latest
container_name: pumpkin-server
restart: unless-stopped
ports:
# Minecraft Java Edition Port
- "25565:25565/tcp"
# Minecraft Bedrock Edition (if enabled)
- "19132:19132/udp"
volumes:
# Persistent world data and configuration
- ./data:/pumpkin
environment:
- RUST_BACKTRACE=1
deploy:
resources:
limits:
memory: 4G# Start server in background
docker compose up -d
# View live console logs
docker compose logs -f
# Stop server gracefully
docker compose down
# Update to latest version
docker compose pull && docker compose up -dTo build a custom container image locally:
# Build local image
docker build -t pumpkin-local:latest .
# Run local container
docker run -d \
--name pumpkin-server \
-p 25565:25565 \
-v $(pwd)/data:/pumpkin \
pumpkin-local:latestWhen mounting a volume (-v ./data:/pumpkin), the directory structure on the host machine contains:
./data/
โโโ pumpkin.toml # Main server settings (ports, limits, motd)
โโโ ops.json # Operator and admin permissions
โโโ world/ # World save data (chunks, player states)
โโโ logs/ # Server execution logs
To deploy on a remote cloud server (e.g., Ubuntu/Debian Oracle VM):
# 1. SSH into server
ssh root@<YOUR_SERVER_IP>
# 2. Setup server directory
mkdir -p /opt/pumpkin/data && cd /opt/pumpkin
# 3. Create docker-compose.yml
cat << 'EOF' > docker-compose.yml
services:
pumpkin:
image: ghcr.io/potatosips/pumpkin:latest
container_name: pumpkin-server
restart: always
ports:
- "25565:25565/tcp"
volumes:
- ./data:/pumpkin
environment:
- RUST_BACKTRACE=1
EOF
# 4. Start the container
docker compose up -d
# 5. Open firewall port 25565
iptables -I INPUT -p tcp --dport 25565 -j ACCEPT