---
title: "How to host a Project Zomboid server on a Linux VPS | StreetHosting"
description: "Project Zomboid server on a VPS: RAM per player count, SteamCMD, UDP ports 16261 and 16262, Java heap, Workshop mods, systemd and cron backups."
url: "https://streethosting.com.br/en/guides/vps/host-project-zomboid-server"
type: "page"
language: "en-US"
---

VPS · 11 min · Intermediate

Published on Sep 28, 2026 · Updated on Sep 28, 2026

# Project Zomboid dedicated server on Linux, from zero to live

The Project Zomboid dedicated server runs natively on Linux and fits well on a VPS with a high clock speed. This guide covers sizing by player count, installation, ports, the systemd service, updates and automatic backups.

By [Equipe StreetHosting](https://streethosting.com.br/en/autores#equipe-streethosting) · StreetHosting infrastructure and support team

[Hardware and datacenter](https://streethosting.com.br/en/guides/topics/hardware) [Linux administration](https://streethosting.com.br/en/guides/topics/linux) [Other games](https://streethosting.com.br/en/guides/topics/other-games)

Summarize with:

[](https://chat.openai.com/?q=Summarize%20the%20key%20points%20of%20this%20StreetHosting%20guide%3A%20https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fvps%2Fhost-project-zomboid-server.%20Highlight%20the%20step-by-step%20instructions%2C%20the%20prerequisites%20and%20the%20most%20common%20mistakes. "ChatGPT") [](https://claude.ai/new?q=Summarize%20the%20key%20points%20of%20this%20StreetHosting%20guide%3A%20https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fvps%2Fhost-project-zomboid-server.%20Highlight%20the%20step-by-step%20instructions%2C%20the%20prerequisites%20and%20the%20most%20common%20mistakes. "Claude") [](https://www.google.com/search?udm=50&aep=11&q=Summarize%20the%20key%20points%20of%20this%20StreetHosting%20guide%3A%20https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fvps%2Fhost-project-zomboid-server.%20Highlight%20the%20step-by-step%20instructions%2C%20the%20prerequisites%20and%20the%20most%20common%20mistakes. "Google AI Mode") [](https://x.com/i/grok?text=Summarize%20the%20key%20points%20of%20this%20StreetHosting%20guide%3A%20https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fvps%2Fhost-project-zomboid-server.%20Highlight%20the%20step-by-step%20instructions%2C%20the%20prerequisites%20and%20the%20most%20common%20mistakes. "Grok") [](https://www.perplexity.ai/search/new?q=Summarize%20the%20key%20points%20of%20this%20StreetHosting%20guide%3A%20https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fvps%2Fhost-project-zomboid-server.%20Highlight%20the%20step-by-step%20instructions%2C%20the%20prerequisites%20and%20the%20most%20common%20mistakes. "Perplexity")

Share:

[](https://x.com/intent/tweet?text=How%20to%20host%20a%20Project%20Zomboid%20server%20on%20a%20Linux%20VPS&url=https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fvps%2Fhost-project-zomboid-server "Share on X") [](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fvps%2Fhost-project-zomboid-server "Share on Facebook") [](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fvps%2Fhost-project-zomboid-server "Share on LinkedIn") [](https://wa.me/?text=How%20to%20host%20a%20Project%20Zomboid%20server%20on%20a%20Linux%20VPS%20https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fvps%2Fhost-project-zomboid-server "Share on WhatsApp")

For agents: Copy as Markdown [.md](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server.md)

In this guide 8 sections

* [Requirements by player count](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#requisitos)
* [Prepare the VPS and SteamCMD](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#preparar-vps)
* [Install and run for the first time](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#instalar)
* [Configure the server, memory and mods](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#configurar)
* [Ports and firewall](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#portas)
* [systemd service and updates](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#systemd)
* [Automatic save backups](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#backup)
* [Which VPS to choose](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#qual-vps)

Quick answer

To **host a Project Zomboid server** on a VPS, create a user just for the game, install SteamCMD, download the dedicated server (app 380870) and run the start script once to generate the config files. Then open UDP ports 16261 and 16262, put the process under a systemd service and schedule backups of the saves. For a group of up to 8 players, a Ryzen VPS with 8 GB of RAM and 4 vCPU handles it well.

## Requirements by player count[](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#requisitos)

The Project Zomboid server is a Java program. Almost all the memory it uses comes from the heap set by the `-Xmx` parameter, and the rest goes to the JVM itself, to map generation and to the operating system. So the right number is not the whole RAM of the VPS, but the heap plus a 2 to 3 GB margin. Hand all the RAM to the heap and the system ends up killing the process for running out of memory exactly when the load peaks.

| Scenario                               | VPS RAM     | Java heap   | vCPU    | Disk   |
| -------------------------------------- | ----------- | ----------- | ------- | ------ |
| 2 to 4 players, no mods                | 6 GB        | 4 GB        | 3       | 30 GB  |
| 5 to 10 players, a few mods            | 8 to 10 GB  | 6 to 7 GB   | 4       | 40 GB  |
| 10 to 20 players, moderate mods        | 12 GB       | 9 GB        | 5       | 60 GB  |
| 20 to 32 players, many mods            | 16 GB       | 12 GB       | 6       | 80 GB  |
| 32 to 64 players, heavily explored map | 24 to 32 GB | 18 to 26 GB | 8 to 10 | 120 GB |

These numbers are a starting point, not a guarantee. Build 42 brought more simulated systems than 41, and servers that ran fine on the previous version usually need one more step of memory. Mods that add entire maps weigh more than UI or item mods.

On the CPU, clock speed is what matters. Zombie and vehicle simulation is concentrated in a few threads, so a big horde near a base full of players depends on how fast each core is, not on how many there are. The difference between the two profiles is explained in [single-thread vs multi-thread CPU for servers](https://streethosting.com.br/en/guides/infrastructure/single-thread-vs-multi-thread-cpu). Disk, on the other hand, grows over time: every visited chunk of the map is written to the save, and backups multiply that volume. NVMe storage also shortens the loading of new areas when someone goes tearing across the map by car.

## Prepare the VPS and SteamCMD[](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#preparar-vps)

The commands below were written for Ubuntu 24.04 LTS and work the same on 22.04. Do everything as a regular user with sudo, never directly as root. If the VPS is still exactly as it was delivered, first follow the guide on [creating a sudo user on a Linux VPS](https://streethosting.com.br/en/guides/vps/create-sudo-user-linux-vps).

Then create a dedicated user for the game, with no admin privileges. If someone exploits a flaw in the server or in a mod, they stay trapped inside that user. In the same step, enable the multiverse repository and the 32-bit architecture that SteamCMD requires, and install tmux, which will keep the game console reachable even with the server running as a service.

`sudo useradd -m -s /bin/bash pzserver sudo add-apt-repository multiverse sudo dpkg --add-architecture i386 sudo apt update sudo apt install steamcmd lib32gcc-s1 tmux`

Installing the `steamcmd` package opens a screen asking you to accept the Steam license. Accept it with the arrow keys and Enter. There is no need to install Java: the server ships its own Java runtime inside the install folder.

## Install and run for the first time[](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#instalar)

Switch to the game user and download the server. Parameter order matters: the install directory comes before the login, otherwise SteamCMD ignores the destination and installs somewhere else.

`sudo -iu pzserver /usr/games/steamcmd +force_install_dir /home/pzserver/server +login anonymous +app_update 380870 validate +quit`

Since late July 2026, Build 42 is the server's default stable version, and the command above already downloads it. If your group still plays on Build 41, add `-beta legacy41` after the app number. Check the exact branch name in the game's properties on Steam, Betas tab, before using it: client and server need to be on exactly the same branch, otherwise nobody gets in.

Now run the server once, manually, to generate the config files. The `-servername` parameter sets the name of the files; without it, everything is called servertest.

`cd /home/pzserver/server ./start-server.sh -servername meuservidor`

On the first run, the server asks you to create the admin user's password and confirm it. Wait for the log to show the SERVER STARTED line, type `quit` and press Enter. This first cycle creates the `~/Zomboid` folder with everything that matters:

* **Server/meuservidor.ini:** network, password, public listing, player limit and mods.
* **Server/meuservidor\_SandboxVars.lua:** world rules, such as zombie population, loot rarity and day length.
* **Saves/Multiplayer/meuservidor:** the world itself, which grows as the map gets explored.
* **db/meuservidor.db:** player accounts, access levels and whitelist.

## Configure the server, memory and mods[](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#configurar)

With the server stopped, open the main file with `nano ~/Zomboid/Server/meuservidor.ini` and adjust the lines below. The rest can stay at their defaults for now.

`PublicName=Zomboid Brasil PublicDescription=Sobrevivencia cooperativa, sem PvP Public=true Open=true Password= MaxPlayers=16 PVP=false PauseEmpty=true SaveWorldEveryMinutes=15 DefaultPort=16261 UDPPort=16262 Mods= WorkshopItems=`

* **Public:**with true, the server shows up in the game's public list. For a closed group, leave it false and give your friends the IP.
* **Open:** with false, only players an admin has registered can join, which works as a whitelist.
* **PauseEmpty:** pauses world time when nobody is connected and saves CPU overnight.
* **SaveWorldEveryMinutes:** writes the loaded areas at each interval. Fifteen minutes is a good balance between safety and disk usage.

The Java memory limit is not in the .ini but in the `ProjectZomboid64.json` file inside the install folder. Look for the value that starts with `-Xmx` (the default varies between versions) and replace it with the heap from the requirements table, for example `-Xmx9g` on a 12 GB VPS.

Updating through SteamCMD with validate restores the original ProjectZomboid64.json. The update script further down reapplies the value on its own, but if you update by hand, check the file before starting the server again.

For mods, every Workshop item has two identifiers, and both appear in the description on the mod's page: the Workshop number goes in WorkshopItems and the Mod ID goes in Mods, always separated by semicolons. The server downloads the files on startup, and players receive the same set when they connect. Many mods are still being ported to Build 42, so confirm on each one's page that it supports the server's version before adding it.

World rules live in SandboxVars.lua. Some of them, such as the amount of loot, only apply to areas not yet visited, so adjust them before opening the server to the group. To promote moderators, join the game as admin and use `/setaccesslevel nome admin`; in the server console, the same command works without the slash.

## Ports and firewall[](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#portas)

Project Zomboid uses two UDP ports, and Build 42 kept the same pair as 41. When in doubt, the ports in use are whatever DefaultPort and UDPPort say in your .ini.

| Port  | Protocol | Purpose                            | Open in the firewall?    |
| ----- | -------- | ---------------------------------- | ------------------------ |
| 16261 | UDP      | Server list and initial connection | Yes                      |
| 16262 | UDP      | Game traffic after joining         | Yes                      |
| 27015 | TCP      | RCON, if RCONPassword is set       | No, use an SSH tunnel    |
| 22    | TCP      | SSH to manage the VPS              | Yes, before enabling UFW |

`sudo ufw allow OpenSSH sudo ufw allow 16261:16262/udp sudo ufw enable sudo ufw status`

The most common mistake is opening only 16261: the player sees the server in the list, starts connecting and gets stuck on the loading screen. If you change the ports in the .ini, open the new ones instead of the defaults. The full step by step for the rules, including how not to lock yourself out of the VPS, is in the guide on the [UFW firewall on an Ubuntu VPS](https://streethosting.com.br/en/guides/vps/ufw-firewall-ubuntu-vps). A public server shows up in the Steam list and attracts attacks; StreetHosting's VPS already comes with traffic filtering, explained in [Anti-DDoS for game servers in Brazil](https://streethosting.com.br/en/guides/infrastructure/anti-ddos-game-server-brazil).

## systemd service and updates[](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#systemd)

The server needs to come back on its own after a VPS reboot and needs a console to receive commands such as save and quit. Combining systemd with tmux solves both. Leave the pzserver user with `exit` and create the file `/etc/systemd/system/zomboid.service`:

`[Unit] Description=Servidor Project Zomboid After=network-online.target Wants=network-online.target [Service] Type=forking User=pzserver WorkingDirectory=/home/pzserver/server ExecStart=/usr/bin/tmux new-session -d -s pz /home/pzserver/server/start-server.sh -servername meuservidor ExecStop=/bin/sh -c '/usr/bin/tmux send-keys -t pz "quit" Enter; while /usr/bin/tmux has-session -t pz 2>/dev/null; do sleep 2; done' TimeoutStopSec=120 Restart=always RestartSec=15 [Install] WantedBy=multi-user.target`

`sudo systemctl daemon-reload sudo systemctl enable --now zomboid sudo systemctl status zomboid`

ExecStop sends quit through the console and waits for the server to save and close, instead of killing the process in the middle of a write. To view the console, use `sudo -iu pzserver tmux attach -t pz` and leave without shutting anything down with Ctrl+B followed by D.

With Restart=always, a quit typed in the console turns into a restart, which is handy for applying config changes. To really shut it down, always use `sudo systemctl stop zomboid`.

When an update comes out, the players' game updates on its own through Steam, and an outdated server refuses everyone. As the pzserver user, create the script `/home/pzserver/atualizar.sh` and make it executable with `chmod +x`. Replace 9g with the heap you chose.

`#!/bin/bash set -e /usr/games/steamcmd +force_install_dir /home/pzserver/server +login anonymous +app_update 380870 validate +quit sed -i 's/-Xmx[0-9]*[mMgG]/-Xmx9g/' /home/pzserver/server/ProjectZomboid64.json`

`sudo systemctl stop zomboid sudo -u pzserver /home/pzserver/atualizar.sh sudo systemctl start zomboid`

Workshop mods are checked on every start, so a simple restart already pulls the new version of a mod. If a mod breaks after an update, remove its ID from both lines of the .ini and start the server again.

## Automatic save backups[](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#backup)

The world, the accounts and the config files live in three folders inside `~/Zomboid`. The script below sends a save through the console, waits for the write to finish, compresses the three folders with the date in the name and deletes copies older than seven days. Create it as the pzserver user at `/home/pzserver/backup.sh`:

`#!/bin/bash DESTINO=/home/pzserver/backups mkdir -p "$DESTINO" /usr/bin/tmux send-keys -t pz "save" Enter sleep 30 tar -czf "$DESTINO/zomboid-$(date +%F-%H%M).tar.gz" -C /home/pzserver Zomboid/Saves Zomboid/Server Zomboid/db find "$DESTINO" -name 'zomboid-*.tar.gz' -mtime +7 -delete`

1. Make it executable: `chmod +x /home/pzserver/backup.sh`
2. Open the user's scheduler: `crontab -e`
3. Add the line to run it every six hours: `0 */6 * * * /home/pzserver/backup.sh`

The server itself also has backup options in the .ini, such as BackupsOnStart and BackupsCount, which keep copies inside the Zomboid folder. They help with a quick rollback, but they sit on the same disk as the VPS. To protect yourself from disk loss or an admin mistake, send the files off the machine with the guide on [automatic backups with restic and cron](https://streethosting.com.br/en/guides/vps/vps-backup-restic-cron). And test the restore at least once: stop the service, extract an archive over `/home/pzserver` and start it again.

## Which VPS to choose for Project Zomboid[](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#qual-vps)

Project Zomboid asks for two things: fast cores for the hordes and memory with headroom for the heap. The [Ryzen 9 9950X VPS](https://streethosting.com.br/en/vps/ryzen) line reaches 5.7 GHz, uses DDR5 memory and NVMe storage, and covers the requirements table step by step:

* **2 to 4 players:** R$ 92.00 per month, with 3 vCPU, 6 GB of RAM and 60 GB NVMe.
* **Up to 10 players:** R$ 118.00 with 4 vCPU and 8 GB, or R$ 144.00 with 10 GB if the group uses mods.
* **10 to 20 players:** R$ 170.00 with 5 vCPU, 12 GB and 120 GB NVMe.
* **20 to 32 players:** R$ 222.00 with 6 vCPU, 16 GB and 160 GB NVMe.
* **Large community:** R$ 326.00 with 8 vCPU and 24 GB, or R$ 430.00 with 10 vCPU and 32 GB.

All of them are in São Paulo, with Anti-DDoS included and activation within 60 seconds. If the group grows, the upgrade is done through the control panel and charges only the prorated difference for the cycle, with one VM reboot. The [Xeon VPS](https://streethosting.com.br/en/vps/xeon) line delivers more vCPU per real, but the lower clock hurts in the hordes; it only pays off for a small group on a tight budget. To compare with other games, see the [best VPS for gaming in Brazil](https://streethosting.com.br/en/guides/vps/best-gaming-vps-brazil), and if your crew also plays 7 Days to Die, the [7 Days to Die server](https://streethosting.com.br/en/guides/vps/host-7-days-to-die-server) guide follows the same format.

In this guide

* [Requirements by player count](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#requisitos)
* [Prepare the VPS and SteamCMD](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#preparar-vps)
* [Install and run for the first time](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#instalar)
* [Configure the server, memory and mods](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#configurar)
* [Ports and firewall](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#portas)
* [systemd service and updates](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#systemd)
* [Automatic save backups](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#backup)
* [Which VPS to choose](https://streethosting.com.br/en/guides/vps/host-project-zomboid-server#qual-vps)

## Frequently asked questions

How much RAM does a Project Zomboid server need?

For up to 4 players without mods, 6 GB of RAM on the VPS with a 4 GB Java heap is enough. For 10 to 20 players with mods, plan on 12 GB. The rule is to take the heap set by the Xmx parameter and add a 2 to 3 GB margin for the system and the game's native memory.

Which ports does the Project Zomboid server use?

The default ports are 16261 UDP, used for the server list and the initial connection, and 16262 UDP, used for game traffic after joining. Both need to be open. RCON uses 27015 TCP and should not be exposed to the internet.

Do I need to buy the game to run the dedicated server?

No. The dedicated server is Steam app 380870 and downloads through SteamCMD with an anonymous login. The players who will connect are the ones who need to own the game, all on the same version as the server.

How do I add Workshop mods to the server?

Each mod has a Workshop number, which goes on the WorkshopItems line of the ini file, and a Mod ID, which goes on the Mods line, both separated by semicolons. The server downloads the files on its own at startup, and players receive the same mods when they connect.

Can I run Build 41 and Build 42 on the same VPS?

Yes, as long as they are two separate installs, each in its own folder, with a different servername, data folder and ports. You cannot mix them: players need to be on the same branch as the install they are joining.

Next step

See Ryzen VPS

Ryzen 9 9950X VPS in São Paulo with root access, NVMe and gamer Anti-DDoS.

[See Ryzen VPS](https://streethosting.com.br/en/vps/ryzen)

[See VPS plans Root VPS in Brazil with NVMe and Anti-DDoS.](https://streethosting.com.br/en/vps)

## Related guides

[VPS Intermediate How to host a 7 Days to Die server on a Linux VPS The 7 Days to Die server runs natively on Linux and survives the blood moon if the CPU has a high clock speed. Learn how to size it by player count and map size, then install, configure and protect the world. 9 min Read guide](https://streethosting.com.br/en/guides/vps/host-7-days-to-die-server) [VPS Beginner UFW on Ubuntu VPS: firewall rules without losing SSH UFW makes the Ubuntu firewall simpler, but one rule in the wrong order locks you out of your VPS. Learn how to enable it without losing SSH, open only what you need, deal with Docker, and get back in through the console if something goes wrong. 10 min Read guide](https://streethosting.com.br/en/guides/vps/ufw-firewall-ubuntu-vps) [VPS Advanced How to automate VPS backups with restic and cron A backup that depends on you remembering does not work. With restic and cron you create encrypted snapshots, send them off the VPS, control retention and test restores without daily effort. 9 min Read guide](https://streethosting.com.br/en/guides/vps/vps-backup-restic-cron)

[← Back to the Guide Center](https://streethosting.com.br/en/guides)
