Hosting a Linux Server – DayZ

From Bohemia Interactive Community
Jump to navigation Jump to search
(Created page with "{{TOC|side}} {{Feature|warning| Do '''not''' run the server as {{hl|root}}! This way, if your DayZ server is compromised, the attacker will find it more difficult to access the rest of the operating system.<br> All actions in this guide were performed as a normal user or under {{hl|sudo}}. }} == Download SteamCMD == '''Debian:''' <syntaxhighlight lang="bash"> sudo apt-get install lib32gcc-s1 </syntaxhighlight> '''RHEL:'''<syntaxhighlight lang="bash"> sudo yum install...")
 
No edit summary
Line 25: Line 25:
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
</syntaxhighlight>
</syntaxhighlight>


== Download DayZ Server ==
== Download DayZ Server ==
Line 52: Line 51:
~/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
~/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
</syntaxhighlight>
</syntaxhighlight>


== Run DayZ Server ==
== Run DayZ Server ==
Line 129: Line 127:
* '''sudo systemctl stop dayz-server''' - Stopping the server.
* '''sudo systemctl stop dayz-server''' - Stopping the server.
* '''sudo systemctl status dayz-server''' - Checking the server status.
* '''sudo systemctl status dayz-server''' - Checking the server status.


{{GameCategory|dayz}}
{{GameCategory|dayz}}
{{GameCategory|dayz|Server}}
{{GameCategory|dayz|Server}}
{{GameCategory|dayz|Editing}}
{{GameCategory|dayz|Editing}}

Revision as of 12:46, 20 February 2024

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.