Hosting a Linux Server – DayZ

From Bohemia Interactive Community
Revision as of 18:26, 13 April 2024 by Lou Montana (talk | contribs) (Some wiki formatting)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Do not run the server as root! This way, if your DayZ server is compromised, the attacker will find it more difficult to access the rest of the operating system.
All actions in this guide were performed as a normal user or under sudo.


Download SteamCMD

Debian:

sudo apt-get install lib32gcc-s1

RHEL:

sudo yum install glibc.i686 libstdc++.i686

Arch Linux:

sudo pacman -Syy glibc lib32-glibc nano

After installing these packages, do the following:

mkdir -p ~/servers/steamcmd && cd ~/servers/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -


Download DayZ Server

  • Instead of your_login, you must indicate your Steam login.
  • Updating the server is performed using the same commands as installation.

Without Mods

Stable branch:

~/servers/steamcmd/steamcmd.sh +force_install_dir ~/servers/dayz-server/ +login your_login +app_update 223350 +quit

Experimental branch:

~/servers/steamcmd/steamcmd.sh +force_install_dir ~/servers/dayz-server/ +login your_login +app_update 1042420 +quit

With Mods

Let's install two mods on a stable branch: Community Framework and Community Online Tools:

~/servers/steamcmd/steamcmd.sh +force_install_dir ~/servers/dayz-server/ +login yout_login +app_update 223350 +workshop_download_item 221100 1559212036 +workshop_download_item 221100 1564026768 +quit


Run DayZ Server

Do not forget to configure the server before running.

Without Mods

сd ~/servers/dayz-server/
./DayZServer -config=serverDZ.cfg -port=2301 -BEpath=battleye -profiles=profiles -dologs -adminlog -netlog -freezecheck

With Mods

In this example, there will still be two mods: Community Framework and Community Online Tools.

cd ~/servers/dayz-server/
ln -s ~/servers/dayz-server/steamapps/workshop/content/221100/1559212036 ~/servers/dayz-server/1559212036
ln -s ~/servers/dayz-server/steamapps/workshop/content/221100/1564026768 ~/servers/dayz-server/1564026768
ln -s ~/servers/dayz-server/steamapps/workshop/content/221100/1559212036/keys/* ~/servers/dayz-server/keys/
./DayZServer -config=serverDZ.cfg -port=2301 "-mod=1559212036;1564026768;" -BEpath=battleye -profiles=profiles -dologs -adminlog -netlog -freezecheck

Ctrl + C - Close the server.

As Daemon With Restart and Auto-Update

  • Instead of your_login, you must indicate your Steam login.
  • Instead of your_username should be your username in the OS.

Create The Initial Scripts

  1. Depending on mods:
    • Without mods: nano ~/servers/dayz-server/update.sh
      /home/your_username/servers/steamcmd/steamcmd.sh +force_install_dir /home/your_username/servers/dayz-server/ +login your_login +app_update 223350 +quit
      
    • With mods: nano ~/servers/dayz-server/update.sh
      /home/your_username/servers/steamcmd/steamcmd.sh +force_install_dir /home/your_username/servers/dayz-server/ +login your_login +app_update 223350 +workshop_download_item 221100 1559212036 +workshop_download_item 221100 1564026768 +quit
      rm /home/your_username/servers/dayz-server/1559212036 /home/your_username/servers/dayz-server/1564026768 /home/your_username/servers/dayz-server/keys/Jacob_Mango_V3.bikey
      ln -s /home/your_username/servers/dayz-server/steamapps/workshop/content/221100/1559212036 /home/your_username/servers/dayz-server/1559212036
      ln -s /home/your_username/servers/dayz-server/steamapps/workshop/content/221100/1564026768 /home/your_username/servers/dayz-server/1564026768
      ln -s /home/your_username/servers/dayz-server/steamapps/workshop/content/221100/1559212036/keys/* /home/your_username/servers/dayz-server/keys/
      
  2. Ctrl + O
  3. Ctrl + X
  4. sudo chmod +x ~/servers/dayz-server/update.sh
  5. sudo nano /etc/systemd/system/dayz-server.service
    [Unit]
    Description=DayZ Dedicated Server
    Wants=network-online.target
    After=syslog.target network.target nss-lookup.target network-online.target
    
    [Service]
    ExecStartPre=/home/your_username/servers/dayz-server/update.sh
    ExecStart=/home/your_username/servers/dayz-server/DayZServer -config=serverDZ.cfg -port=2301 "-mod=1559212036;1564026768;" -BEpath=battleye -profiles=profiles -dologs -adminlog -netlog -freezecheck
    WorkingDirectory=/home/your_username/servers/dayz-server/
    LimitNOFILE=100000
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s INT $MAINPID
    User=your_username
    Group=users
    Restart=on-failure
    RestartSec=5s
    
    [Install]
    WantedBy=multi-user.target
    
  6. sudo systemctl daemon-reload

Daemon Commands

  • sudo systemctl enable dayz-server - Enables server autostart when the OS starts.
  • sudo systemctl disable dayz-server - Disables server autostart when the OS starts.
  • sudo systemctl start dayz-server - Starting the server.
  • sudo systemctl restart dayz-server - Restarting the server.
  • sudo systemctl stop dayz-server - Stopping the server.
  • sudo systemctl status dayz-server - Checking the server status.