This guide walks you through every step of running a 7 Days to Die dedicated server on Linux โ from a fresh Ubuntu or Debian VPS to a fully configured, player-ready server. You do not need to own the game to host a server. No prior Linux experience required beyond basic command-line familiarity.
What You'll Learn
Why Linux for 7DTD?
Prerequisites & Requirements
Step 1 โ Update Your System
Step 2 โ Create Server User
Step 3 โ Install SteamCMD
Step 4 โ Download Server Files
Step 5 โ Configure Your Server
Step 6 โ Configure the Firewall (UFW)
Step 7 โ Install Screen and Start
Step 8 โ Connect to Your Server
Step 9 โ Auto-Start on Reboot
Performance Optimization Tips
Automated Backups
Frequently Asked Questions
Why Run Your 7 Days to Die Server on Linux?
Linux is widely regarded as the best operating system for running a 7 Days to Die dedicated server. Compared to Windows, a Linux server runs leaner, leaving more CPU and RAM headroom for the game itself. Here is what makes Linux the smart choice for your 7DTD server:
- 10โ15% better performance on the same hardware, thanks to lower system overhead and no GUI running in the background.
- More stable for long sessions โ Linux handles memory and process management more efficiently, which matters on horde nights.
- Better automation โ cron jobs, shell scripts, and tools like
screenortmuxmake scheduled restarts and live backups straightforward. - Free and open source โ no licensing cost, full root access, and a massive support community.
- Reliable file system โ unlike Windows (NTFS), Linux filesystems allow safe live backups of server saves without corruption risk.
Prerequisites & System Requirements
Before you start, make sure your server meets these requirements. Undersized hardware is the most common reason a 7 Days to Die Linux server performs poorly.
or Debian 12
(3 GHz+ for 8+ players)
(12โ16 GB for 16 players)
(SSD or NVMe strongly recommended)
Static or stable IP
26900โ26902 UDP
Step 1 โ Update Your Linux System
Connect to your server via SSH and update all system packages before installing anything.
# Update package lists and upgrade installed packages
sudo apt update && sudo apt upgrade -y
Step 2 โ Create a Dedicated Server User
Never run a game server as root. Create a separate 7days user to isolate server processes and improve security.
# Create a new user account named "7days"
sudo useradd --comment "7 Days to Die Server" -m 7days
# Set the shell to bash
sudo chsh -s /bin/bash 7days
# Set a password for the account
sudo passwd 7days
# Switch to the new user
sudo su - 7days
Step 3 โ Install SteamCMD
SteamCMD is Valve's command-line Steam client. It is used to download and update the 7 Days to Die dedicated server files without a GUI.
Run these commands as a user with sudo access (not the 7days user):
# Enable multiverse repository (Ubuntu)
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
# Install required 32-bit libraries and SteamCMD
sudo apt install -y lib32gcc-s1 steamcmd
7days user and that the install directory is owned by that user โ not root.
Step 4 โ Download the 7 Days to Die Server Files
Switch to the 7days user and use SteamCMD to download the dedicated server. The Steam App ID for 7 Days to Die is 294420.
You do not need a Steam account โ the 7DTD dedicated server can be downloaded anonymously:
# Switch to the 7days user
sudo su - 7days
# Create installation directory
mkdir -p ~/7daysded
# Launch SteamCMD and download the server
steamcmd \
+force_install_dir ~/7daysded \
+login anonymous \
+app_update 294420 validate \
+quit
This downloads approximately 6โ10 GB of files. The validate flag verifies file integrity after download โ include it for initial installs. When you see "Success! App '294420' fully installed." the download is complete.
steamcmd command above any time a new 7 Days to Die update is released. SteamCMD will detect and download only the changed files.
Step 5 โ Configure Your Server
The main configuration file is serverconfig.xml, found in your server installation directory. Edit it with nano or any text editor.
nano ~/7daysded/serverconfig.xml
Here are the most important settings to configure in serverconfig.xml:
| Parameter | Example Value | Description |
|---|---|---|
ServerName |
Leo Servers 7DTD |
The name displayed in the server browser. |
ServerDescription |
Hosted on Leo Servers |
Short description shown alongside the server name. |
ServerPassword |
yourStrongPass! |
Leave empty for a public server. Set a password to require an entry key. |
ServerMaxPlayerCount |
8 |
Maximum simultaneous players. Unofficial cap is 16; plan RAM accordingly. |
ServerVisibility |
2 |
2 = public listing, 1 = friends only, 0 = not listed. |
GameWorld |
Navezgane |
The map to load. Navezgane is the handcrafted map; RNG World for procedural. |
GameName |
MyApocalypse |
The save game name. Change this to start a fresh world. |
GameDifficulty |
2 |
0=Scavenger (easiest) to 5=Insane (hardest). |
ZombieMove |
0 |
Zombie walk speed by day: 0=walk, 4=sprint. |
BloodMoonFrequency |
7 |
How often (in game days) blood moon horde nights occur. |
ServerPort |
26900 |
The network port the server listens on. Default is 26900. |
ControlPanelEnabled |
false |
Enables the web-based admin panel. Keep disabled unless needed. |
Setting Up Admin Access
To give yourself admin rights on the server, locate and edit the adminlist.xml file in the Saves directory and add your Steam ID:
<adminTools>
<admins>
<admin steamID="76561198XXXXXXXXX" permission_level="0" />
</admins>
</adminTools>
Replace 76561198XXXXXXXXX with your actual 64-bit Steam ID. You can find yours at steamid.io.
Step 6 โ Configure the Firewall (UFW)
Open the required network ports so players can connect to your 7 Days to Die Linux server.
The required ports for a 7 Days to Die dedicated server are:
| Port | Protocol | Purpose |
|---|---|---|
| 26900 | TCP UDP | Main game port โ player connections |
| 26901 | UDP | EAC (Anti-Cheat) / Steam integration |
| 26902 | UDP | Steam server queries (server browser) |
| 8080 | TCP | Web control panel (optional, keep disabled if unused) |
# Enable UFW firewall if not already active
sudo ufw enable
# Allow SSH so you don't lock yourself out
sudo ufw allow 22/tcp
# Open 7 Days to Die ports
sudo ufw allow 26900/tcp
sudo ufw allow 26900:26902/udp
# Verify rules are active
sudo ufw status verbose
Step 7 โ Install Screen and Start the Server
Use screen or tmux to run your 7 Days to Die server in a persistent background session that stays alive after you disconnect from SSH.
# Install screen
sudo apt install -y screen
# Switch to the 7days user
sudo su - 7days
# Create a new screen session named "7dtd"
screen -S 7dtd
# Navigate to server directory and launch
cd ~/7daysded
./startserver.sh -configfile=serverconfig.xml
The server will start initializing. The first launch takes longer as it generates the world. You will see output like INF StartGame and eventually INF StartingServer when the server is ready.
Detaching and Reattaching
# Detach from the screen session (server keeps running)
Ctrl + A, then D
# List active screen sessions
screen -ls
# Reattach to your 7DTD session
screen -r 7dtd
# To stop the server gracefully (inside screen)
shutdown
Step 8 โ Connect to Your Server
Once the server is running, connecting from the 7 Days to Die game client is straightforward.
- Launch 7 Days to Die on your PC.
- From the main menu, select Play โ Join Game โ Direct Connect.
- Enter your server's public IP address followed by the port:
YOUR.SERVER.IP:26900 - Enter the server password if you set one in
serverconfig.xml. - Click Connect.
curl ifconfig.me on the server to print your public IP address.
Step 9 โ Auto-Start on Reboot (systemd)
Create a systemd service so your 7 Days to Die server automatically starts when the Linux system reboots.
sudo nano /etc/systemd/system/7dtd.service
Paste the following content into the file:
[Unit]
Description=7 Days to Die Dedicated Server
After=network.target
[Service]
Type=simple
User=7days
WorkingDirectory=/home/7days/7daysded
ExecStart=/home/7days/7daysded/startserver.sh -configfile=serverconfig.xml
ExecStop=/bin/kill -SIGTERM $MAINPID
Restart=on-failure
RestartSec=15
[Install]
WantedBy=multi-user.target
# Reload systemd and enable the service
sudo systemctl daemon-reload
sudo systemctl enable 7dtd
sudo systemctl start 7dtd
# Check the service status
sudo systemctl status 7dtd
Performance Optimization Tips
Once your 7 Days to Die dedicated server on Linux is running, these tweaks will reduce lag, improve stability, and make horde nights smoother for all players:
- Use an SSD or NVMe drive โ 7DTD constantly reads and writes world chunks. Spinning disk HDDs cause severe I/O stalls during horde nights with multiple players.
- Set up automated backups โ Use a cron job with
rsyncortarto back up~/7daysded/Saves/hourly. World corruption after crashes is common; backups let you roll back instantly. - Monitor server resources โ Run
htopto watch CPU and RAM usage. If the server consistently hits 90%+ RAM, lowerServerMaxPlayerCountor upgrade your VPS. - Reduce
BloodMoonEnemyCountโ Lowering zombie counts on horde nights is the single biggest lever for reducing CPU spikes. The default is 8; set it to 4โ6 on lower-end hardware. - Limit chunk generation distance โ Reduce
ServerMaxAllowedViewDistance(default 12) to 6โ8 on lower-RAM servers to cut memory usage significantly. - Keep the server updated โ Run the SteamCMD
app_update 294420command regularly. Updates often include server-side performance improvements.
Automated Backup Script
Here is a simple backup script you can schedule with cron to protect your 7 Days to Die world saves:
#!/bin/bash
# 7 Days to Die Server Backup Script
# Save this as /home/7days/backup.sh and chmod +x it
TIMESTAMP=$(date +"%Y%m%d_%H%M")
SAVE_DIR=/home/7days/7daysded/Saves
BACKUP_DIR=/home/7days/backups
MAX_BACKUPS=24 # Keep last 24 backups (24 hours at hourly cron)
mkdir -p "$BACKUP_DIR"
tar -czf "$BACKUP_DIR/7dtd_save_$TIMESTAMP.tar.gz" -C "$SAVE_DIR" .
# Remove old backups beyond MAX_BACKUPS
ls -t "$BACKUP_DIR"/*.tar.gz | tail -n +$((MAX_BACKUPS + 1)) | xargs rm -f
echo "Backup complete: 7dtd_save_$TIMESTAMP.tar.gz"
Schedule it to run every hour with cron:
# Edit the crontab for the 7days user
crontab -e
# Add this line to run backup every hour
0 * * * * /home/7days/backup.sh >> /home/7days/backup.log 2>&1
Frequently Asked Questions
login anonymous). You do not need a Steam account or a copy of the game to host a server.
app_update 294420 validate command. SteamCMD will download only the changed files. After the update completes, start the server again.
ServerVisibility in serverconfig.xml must be set to 2. (2) Ports 26900โ26902 UDP must be open in UFW. (3) If behind a home router, those ports must be forwarded. You can verify ports are reachable using canyouseeme.org.
Want Your 7DTD Server Today?
Leo Servers provides high-performance, DDoS-protected gaming dedicated servers on optimized Linux infrastructure. No setup required โ just configure and play.
Deploy a Gaming Server →Discover Leo Servers High-Performance Locations
Leo Servers operates premium bare-metal environments worldwide, offering diverse hosting options. Check out our specialized offerings to choose the setup that best suits your intensive workload needs.
