7 Days to Die is a zombie survival and crafting game where every seventh night brings a blood moon horde. A dedicated server keeps the world running for your group between sessions, and handles the horde nights without one player’s PC carrying the load. The server has a native Linux version.
Requirements
- 4 vCPU and 8 GB RAM for a small group (up to about 8 players). Larger maps (8K/10K), more players and mods need 12–16 GB.
- About 15–20 GB disk, plus saves.
- Ports 26900 TCP/UDP and 26901–26902 UDP.
- A location near your players. See game server VPS.
Install with SteamCMD
sudo dpkg --add-architecture i386
sudo apt update && sudo apt install -y steamcmd lib32gcc-s1
sudo adduser --disabled-password --gecos "" sdtd
sudo -iu sdtd
/usr/games/steamcmd +force_install_dir ~/7dtd +login anonymous +app_update 294420 -beta public validate +quit
The dedicated server’s app ID is 294420. To use an experimental build, change -beta. Clients must be on the same version.
Configure serverconfig.xml
Copy the default config, so updates don’t overwrite your changes:
cd ~/7dtd && cp serverconfig.xml myconfig.xml
Key properties in myconfig.xml:
<property name="ServerName" value="Our Horde Server"/>
<property name="ServerPassword" value="secret-pass"/>
<property name="ServerVisibility" value="2"/> <!-- 2 public, 1 friends, 0 not listed -->
<property name="ServerPort" value="26900"/>
<property name="ServerMaxPlayerCount" value="8"/>
<property name="GameWorld" value="Navezgane"/> <!-- or RWG for random generation -->
<property name="WorldGenSeed" value="myseed"/>
<property name="WorldGenSize" value="6144"/>
<property name="GameName" value="MyGame"/>
<property name="GameDifficulty" value="2"/>
<property name="BloodMoonFrequency" value="7"/>
<property name="TelnetEnabled" value="true"/>
<property name="TelnetPort" value="8081"/>
<property name="TelnetPassword" value="long-random-password"/>
<property name="WebDashboardEnabled" value="true"/>
<property name="WebDashboardPort" value="8080"/>
<property name="UserDataFolder" value="/home/sdtd/userdata"/>
Random generation (RWG) creates the world on the first start, which takes a long time and a lot of RAM for large sizes. Generate once, then keep the world.
Start the server
cd ~/7dtd
./startserver.sh -configfile=myconfig.xml
Run it under systemd (with ExecStartPre running the SteamCMD update) or in tmux. Stop cleanly with the shutdown command via telnet, so the world saves. See systemd unit files and tmux.
Firewall
sudo ufw allow 26900/tcp
sudo ufw allow 26900:26902/udp
# telnet 8081 and the web dashboard 8080: don't expose publicly
Use an SSH tunnel for telnet and the web dashboard (ssh -L 8080:127.0.0.1:8080 user@server). Telnet is unencrypted. See SSH tunnelling and UFW.
Admins
Add yourself to serveradmin.xml in the user data folder (Saves/serveradmin.xml by default), with your Steam ID and permission level 0, or use the telnet console:
telnet 127.0.0.1 8081
admin add <SteamID64 or EOS ID> 0
saveworld
In game, open the console (F1) for commands such as kick, ban, settime, and spawnscreen.
Mods
Place modlets (folders with ModInfo.xml) in ~/7dtd/Mods/. Server-side XML modlets often don’t require client installs. Mods with new assets or code (DLLs) must also be installed by every player. Check each mod’s notes and its supported game version.
Backups
Saves live in the user data folder (Saves/<World>/<GameName>/) and generated worlds in GeneratedWorlds/:
tar czf /backups/7dtd-$(date +%F-%H%M).tgz -C /home/sdtd userdata
Back up before every game update. Major versions (alphas, and the 1.x releases) often require a new world. See backup strategy.
Performance tips
- Horde nights spike CPU. Reduce
MaxSpawnedZombiesor the blood moon enemy count if the server struggles. - Restart daily to reclaim memory.
- Keep
ServerMaxPlayerCountrealistic for your hardware.
Quick reference
| Item | Value |
|---|---|
| SteamCMD app ID | 294420 |
| Ports | 26900 TCP/UDP, 26901–26902 UDP |
| Config | myconfig.xml (copy of serverconfig.xml) |
| Telnet / web dashboard | 8081 / 8080 (keep private) |
| Clean stop | shutdown via telnet |
Related: Project Zomboid server and LinuxGSM.