Install it with SteamCMD
Bohemia's Linux guide opens with a warning worth repeating: do not run the server as root, because a compromised server is then a compromised machine. Create a normal user and work as that.
SteamCMD needs its 32-bit support libraries first. Bohemia name the packages per distribution: lib32gcc-s1 on Debian, glibc.i686 and libstdc++.i686 on RHEL, glibc and lib32-glibc on Arch. Then unpack SteamCMD and pull the server:
- Stable:
~/servers/steamcmd/steamcmd.sh +force_install_dir ~/servers/dayz-server/ +login your_login +app_update 223350 +quit - Experimental: the same line with
1042420in place of223350
Two things differ from most survival games here. The app id changes for the experimental branch rather than being a beta flag on the same one. And +login takes your own Steam account, not anonymous. Updating the server later is the same command again.
serverDZ.cfg, and the name that means nothing
Bohemia are unusually blunt about this. The name server.cfg means nothing, the file can be called anything, and the real name is whatever you pass to -config on the command line. There is no default: if you name none, the server will not launch, because the mandatory settings never get read.
Inside it, the settings that decide how the server behaves:
| Setting | What it does |
|---|---|
hostname, description | What players see in the browser. The description is capped at 255 characters. |
passwordAdmin | The password that makes you a server admin. Change it. |
maxPlayers | Player slots. |
verifySignatures | Checks .pbo files against their .bisign files. Bohemia note only the value 2 is supported. |
forceSameBuild | Only lets clients on the same build as the server connect. |
instanceId | Identifies this server's storage folder, which is where the persistence files live. |
storageAutoFix | Checks whether persistence files are corrupted and replaces the corrupted ones with empty ones. |
steamQueryPort | The query port. Bohemia's own comment says setting it should fix a server not being visible in the client server browser. |
class Missions | The mission loaded at startup, written as mission name and terrain name. The shipped example is dayzOffline.chernarusplus. |
There are useful smaller ones. serverTimeAcceleration multiplies the clock, so 24 puts a whole day in an hour, and serverNightTimeAcceleration multiplies again on top of it for night only. serverTimePersistent saves the clock to storage so the next start resumes it. respawnTime is the delay before a dead player gets a new character. pingWarning, pingCritical and MaxPing set the yellow warning, the red warning and the kick threshold in milliseconds.
The launch line
On Linux the documented start looks like this:
./DayZServer -config=serverDZ.cfg -port=2301 -BEpath=battleye -profiles=profiles -dologs -adminlog -netlog -freezecheck
The Windows executable is DayZServer_x64.exe and takes the same switches, usually from a batch file or a shortcut. Bohemia document -port=2302 as the port the server listens on, -profiles= as the folder holding the server profile, which is where logs, dumps and the BattlEye files land by default, and -mission= to override the mission. -freezeCheck is the one to keep: it stops the server when it has been frozen for more than five minutes and writes a dump file, which turns a silent hang into something you can read afterwards.
Two more are worth knowing before you need them. -storage= sets a custom root folder for the storage location, which is useful when the saves should not live inside the install. -mod= and -serverMod= take semicolon-separated folders, the second for mods that are not broadcast to clients.
Ports
The game port is 2302 by default and is set with -port=. The query port is set in the config file with steamQueryPort, and the shipped example uses 2305. There is also a clientPort setting, documented as forcing the port the clients connect with, with 2304 in the example. Open the game port first, confirm somebody outside your network can join, and then deal with the query port, which is what puts you in the browser.
BattlEye and admin access
BattlEye's own config file is BEServer_x64.cfg and it has to sit in the same folder as BEServer_x64.dll. You can move that folder with the -bePath and -profiles start-up parameters. The two settings Bohemia document there are RConPassword, which is what a remote console tool connects with, and RestrictRCon, which limits what those tools may do.
Priority queue is a plain text file. Put priority.txt in the root of the server install with Steam IDs separated by semicolons, and those players skip to the front of the login queue.
Mods, and the symlinks that have to be redone
Mods come down through SteamCMD alongside the server, using +workshop_download_item 221100 <id>. They land under steamapps/workshop/content/221100/<id>, and the documented pattern is to symlink each one into the server root and symlink the mod's keys/* into the server's keys/ folder, then name them in -mod=.
The part that bites is maintenance. Bohemia's own update script deletes those links and the mod's bikey and recreates them every time it updates, because an update replaces the content the links point at. If you write your own update step and leave that out, the mods stop loading and nothing obvious explains why.
Keeping it running
The documented approach on Linux is a systemd unit with ExecStartPre pointing at an update script, Restart=on-failure, RestartSec=5s and the server running as your normal user rather than root. That gives you systemctl start, restart, status and enable for start on boot.
One warning sits at the top of Bohemia's configuration page and deserves the same place here: use the graceful shutdown method rather than killing the process, to avoid unpleasant side effects on player characters and on storage saving. A survival server that loses an hour of persistence is a server people leave.
Self-hosting or renting
If you already have a machine that stays on, self-hosting DayZ costs nothing but your attention, and every file stays yours. For a private server for a handful of friends that is often the right answer, and this page is enough to get there.
The honest costs are these. The machine has to be awake whenever anyone wants to play, which usually rules out the computer you play on. Many home connections cannot accept incoming connections at all, and no amount of careful forwarding fixes that. Every game update means a SteamCMD run, a mod re-link and a restart, often at an hour that does not suit you. And persistence is unforgiving: the backups you actually take are the only ones that count.
Renting moves that list rather than removing it. The mission, the mod list, the settings and the wipe schedule are still your decisions, and somebody still has to make them.
Where RadarHost fits
RadarHost rents DayZ servers hosted in Beauharnois, Quebec, Canada. There are three plans, Standard, Premium and Diamond, priced in Canadian dollars, with no setup fee and cancel any time. What renting changes is who keeps the machine on; the config file, the mods and the persistence above are still yours to choose. After payment, our team reviews the order and emails setup details or next steps within 24 hours. Current plans and prices are on the DayZ availability page.