Project Zomboid gameplay

Host a Project Zomboid Dedicated Server

Project Zomboid is the ultimate in zombie survival. Alone or in MP: you loot, build, craft, fight, farm and fish in a struggle to survive. A hardcore RPG skillset, a vast map, massively customisable sandbox and a cute tutorial raccoon await the unwary. So how will you die? All it takes is a bite..

Hardware Requirements

Here's what you need to run a Project Zomboid dedicated server.

Economy

Small world, 1-8 players

CPU0.25 cores
RAM4 GB
Storage5 GB

Standard

Community server, 8-32 players

CPU0.5 cores
RAM8 GB
Storage5 GB

Pro

Large public server, 32-64 players

CPU1 core
RAM16 GB
Storage5 GB

Start hosting from your own computer

Run a Project Zomboid server on your desktop, laptop, VPS, or dedicated machine — GameCP automates Docker setup, resource allocation, and Project Zomboid 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 SteamCMD installation, port forwarding, and systemd configuration. Install on your own computer and start hosting instantly.

The Manual Way vs. GameCP

Manual Setup

  • Install SteamCMD manually
  • 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

  • One-click SteamCMD install
  • 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 Project Zomboid 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, SteamCMD, and pull the Project Zomboid 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

# Install SteamCMD
sudo mkdir -p /opt/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | sudo tar zxvf - -C /opt/steamcmd

# Server configuration
export ADMIN_USER="admin"
export CONFIG_NAME="servertest"
export AUTO_UPDATE="0"

# Pull the container image
docker pull ghcr.io/ptero-eggs/steamcmd:debian
Step 2

Install Server Files via SteamCMD

Download the Project Zomboid dedicated server using Steam App ID 380870.

terminal
# Download Project Zomboid server files (App ID: 380870)
/opt/steamcmd/steamcmd.sh \
  +force_install_dir /opt/gameserver \
  +login anonymous \
  +app_update 380870 validate \
  +quit
Step 3

Open Firewall Ports

Project Zomboid requires 1 port to be open for game traffic and queries.

terminal
sudo ufw allow 16261/both
16261/BOTH(PORT)
Step 4

Launch the Server

Start the Project Zomboid server using the configuration from Step 1.

Create the startup script

terminal
# Create the startup script
cat > /opt/gameserver/start.sh << 'EOF'
#!/bin/bash

# 1. Path & Environment Setup
# Move to the container root to ensure relative paths work
cd /home/container || exit 1

# Update PATH and Library paths correctly
export PATH="./jre64/bin:"
export LD_LIBRARY_PATH="./linux64:./natives:.:./jre64/lib/server:"

# 2. Fix the LD_PRELOAD Warning
# We check if the file exists before preloading to avoid 'cannot open shared object' errors
JSIG="./jre64/lib/server/libjsig.so"
if [ -f "" ]; then
export LD_PRELOAD=":"
fi

# 3. Memory & Performance for Ryzen 7900
# Zomboid is heavy on RAM; 8GB is standard, but you can bump -Xmx if needed.
JAVA_ARGS="-Xmx8g -XX:+UseZGC -Djava.awt.headless=true -Dzomboid.steam=1 -Dzomboid.znetlog=1"

# 4. The Launch Command
# FIX: Changed -cachedir from '/.cache' to 'Zomboid' to stay inside /home/container
# NOTE: -servername uses PZ_CONFIG_NAME (default: servertest) which determines
# which .ini and _SandboxVars.lua files PZ reads. This is NOT the public display name.
./ProjectZomboid64 \
-port 16261 \
-udpport \
-cachedir=Zomboid \
-servername "servertest" \
-adminusername "admin" \
-adminpassword ""
EOF
chmod +x /opt/gameserver/start.sh

Run the container

terminal
docker run -d \
  --name project-zomboid-server \
  -p 16261:16261/both \
  -e ADMIN_USER="admin" \
  -e CONFIG_NAME="servertest" \
  -e AUTO_UPDATE="0" \
  -v /opt/gameserver:/opt/gameserver \
  -w /opt/gameserver \
  ghcr.io/ptero-eggs/steamcmd:debian \
  ./start.sh

Alternative startup profiles:

  • G1GC OptimizedOptimized G1 garbage collector for reduced lag spikes. Best for servers with 10+ players.

GameCP lets you switch between these profiles with one click.

Or skip all of this

GameCP automates every step above: Docker, SteamCMD, port forwarding, startup, and config. Install on your own PC and deploy a Project Zomboid server in under 5 minutes.

Deploy with GameCP

Ready to Host Your Project Zomboid 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