Infernales/Sandbox – User

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
m (*Some* wiki formatting)
 
(13 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{Feature|warning|'''DO NOT RUN THE SERVER AS ROOT!'''
{{TOC|side}}
{{Feature|warning|
Do '''not''' run the server as {{hl|root}}!<br>
All actions in this guide were performed as a normal user or under {{hl|sudo}}.
}}


'''ALL ACTIONS IN THIS GUIDE WERE PERFORMED AS A NORMAL USER, OR UNDER SUDO!'''}}


==='''<u>Downloading SteamCMD.</u>'''===
== Download SteamCMD ==
'''Debian:'''<syntaxhighlight>
 
'''Debian:'''
<syntaxhighlight lang="bash">
sudo apt-get install lib32gcc-s1
sudo apt-get install lib32gcc-s1
</syntaxhighlight>'''RHEL:'''<syntaxhighlight>
</syntaxhighlight>
 
'''RHEL:'''<syntaxhighlight lang="bash">
sudo yum install glibc.i686 libstdc++.i686
sudo yum install glibc.i686 libstdc++.i686
</syntaxhighlight>'''Arch Linux:'''<syntaxhighlight>
</syntaxhighlight>
 
'''Arch Linux:'''<syntaxhighlight lang="bash">
sudo pacman -Syy glibc lib32-glibc nano
sudo pacman -Syy glibc lib32-glibc nano
</syntaxhighlight>
</syntaxhighlight>


After installing these packages, do the following:<syntaxhighlight>
After installing these packages, do the following:
<syntaxhighlight lang="bash">
mkdir -p ~/servers/steamcmd && cd ~/servers/steamcmd
mkdir -p ~/servers/steamcmd && cd ~/servers/steamcmd
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>


==='''<u>Downloading DayZ server.</u>'''===
{{Feature|warning|Instead of your_login, you must indicate your Steam login.}}
{{Feature|warning|Updating the server is performed using the same commands as installation.}}


===='''<u>Downloading DayZ server without mods.</u>'''====
== Download DayZ Server ==
'''Public branch:'''<syntaxhighlight>
 
{{Feature|informative|
* 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:'''
<syntaxhighlight lang="bash">
~/servers/steamcmd/steamcmd.sh +force_install_dir ~/servers/dayz-server/ +login your_login +app_update 223350 +quit
~/servers/steamcmd/steamcmd.sh +force_install_dir ~/servers/dayz-server/ +login your_login +app_update 223350 +quit
</syntaxhighlight>'''Experimental branch:'''<syntaxhighlight>
</syntaxhighlight>
 
'''Experimental branch:'''
<syntaxhighlight lang="bash">
~/servers/steamcmd/steamcmd.sh +force_install_dir ~/servers/dayz-server/ +login your_login +app_update 1042420 +quit
~/servers/steamcmd/steamcmd.sh +force_install_dir ~/servers/dayz-server/ +login your_login +app_update 1042420 +quit
</syntaxhighlight>
</syntaxhighlight>


===='''<u>Downloading DayZ server with mods.</u>'''====
=== With Mods ===
For example, let's install two mods on a public branch: [https://steamcommunity.com/sharedfiles/filedetails/?id=1559212036 Community Framework] and [https://steamcommunity.com/sharedfiles/filedetails/?id=1564026768 Community Online Tools]:<syntaxhighlight>
 
Let's install two mods on a stable branch: {{Link|https://steamcommunity.com/sharedfiles/filedetails/?id{{=}}1559212036|Community Framework}} and {{Link|https://steamcommunity.com/sharedfiles/filedetails/?id{{=}}1564026768|Community Online Tools}}:
<syntaxhighlight lang="bash">
~/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>


===<u>'''Run DayZ server.'''</u>===
 
{{Feature|warning|Don't forget to [https://community.bistudio.com/wiki/DayZ:Server_Configuration configure] the server before running!}}
== Run DayZ Server ==
===='''<u>Run DayZ server without mods:</u>'''====
 
<syntaxhighlight>
{{Feature|important|Do not forget to {{Link|DayZ:Server Configuration|configure}} the server before running.}}
сd /home/your_username/servers/dayz-server/
 
=== Without Mods ===
 
<syntaxhighlight lang="bash">
сd ~/servers/dayz-server/
./DayZServer -config=serverDZ.cfg -port=2301 -BEpath=battleye -profiles=profiles -dologs -adminlog -netlog -freezecheck
./DayZServer -config=serverDZ.cfg -port=2301 -BEpath=battleye -profiles=profiles -dologs -adminlog -netlog -freezecheck
</syntaxhighlight>
</syntaxhighlight>


===='''<u>Run DayZ server with mods:</u>'''====
=== With Mods ===
In this example, there will still be two mods: Community Framework and Community Online Tools.<syntaxhighlight>
 
In this example, there will still be two mods: Community Framework and Community Online Tools.
<syntaxhighlight lang="bash">
cd ~/servers/dayz-server/
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/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/1564026768 ~/servers/dayz-server/1564026768
find ~/servers/dayz-server/steamapps/workshop/content/221100/ -depth -exec perl-rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
ln -s ~/servers/dayz-server/steamapps/workshop/content/221100/1559212036/keys/* ~/servers/dayz-server/keys/
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
./DayZServer -config=serverDZ.cfg -port=2301 "-mod=1559212036;1564026768;" -BEpath=battleye -profiles=profiles -dologs -adminlog -netlog -freezecheck
</syntaxhighlight>
</syntaxhighlight>
'''Ctrl+C''' - Close the server.
{{Controls|Ctrl|C}} - Close the server.


=== <u>'''Run DayZ server as daemon with restart after crash and auto-update.'''</u> ===
=== As Daemon With Restart and Auto-Update ===
{{Feature|warning|Instead of your_login, you must indicate your Steam login.}}
{{Feature|warning|Instead of your_username should be your username in the OS.}}


==== Let's create the initial scripts: ====
{{Feature|informative|
* Instead of '''your_login''', you must indicate your Steam login.
* Instead of '''your_username''' should be your username in the OS.
}}


# '''Without mods:'''  nano ~/servers/dayz-server/update.sh<syntaxhighlight>
==== Create The Initial Scripts ====
~/servers/steamcmd/steamcmd.sh +force_install_dir ~/servers/dayz-server/ +login your_login +app_update 223350 +quit
# Depending on mods:
</syntaxhighlight>'''With mods:'''  nano ~/servers/dayz-server/update.sh<syntaxhighlight>
#* '''Without mods:'''  nano ~/servers/dayz-server/update.sh <syntaxhighlight lang="bash">
~/servers/steamcmd/steamcmd.sh +force_install_dir ~/servers/dayz-server/ +login your_login +app_update 223350 +workshop_download_item 221100 1559212036 +workshop_download_item 221100 1564026768 +quit
/home/your_username/servers/steamcmd/steamcmd.sh +force_install_dir /home/your_username/servers/dayz-server/ +login your_login +app_update 223350 +quit
rm ~/servers/dayz-server/1559212036 ~/servers/dayz-server/1564026768 ~/servers/dayz-server/keys/jacob_mango_v3.bikey
</syntaxhighlight>
ln -s ~/servers/dayz-server/steamapps/workshop/content/221100/1559212036 ~/servers/dayz-server/1559212036
#* '''With mods:'''  nano ~/servers/dayz-server/update.sh <syntaxhighlight lang="bash">
ln -s ~/servers/dayz-server/steamapps/workshop/content/221100/1564026768 ~/servers/dayz-server/1564026768
/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
find ~/servers/dayz-server/steamapps/workshop/content/221100/ -depth -exec perl-rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
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 ~/servers/dayz-server/steamapps/workshop/content/221100/1559212036/keys/* ~/servers/dayz-server/keys/
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/
</syntaxhighlight>
</syntaxhighlight>
# Ctrl+O
# {{Controls|Ctrl|O}}
# Ctrl+X
# {{Controls|Ctrl|X}}
# sudo chmod +X ~/servers/dayz-server/update.sh
# sudo chmod +x ~/servers/dayz-server/update.sh
# sudo nano /etc/systemd/system/dayz-server.service<syntaxhighlight>
# sudo nano /etc/systemd/system/dayz-server.service<syntaxhighlight lang="ini">
[Unit]
[Unit]
Description=DayZ server
Description=DayZ Dedicated Server
Wants=network-online.target
Wants=network-online.target
After=syslog.target network.target nss-lookup.target network-online.target
After=syslog.target network.target nss-lookup.target network-online.target
Line 84: Line 113:
ExecReload=/bin/kill -s HUP $MAINPID
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s INT $MAINPID
ExecStop=/bin/kill -s INT $MAINPID
User=demon
User=your_username
Group=users
Group=users
Restart=on-failure
Restart=on-failure
Line 94: Line 123:
# sudo systemctl daemon-reload
# sudo systemctl daemon-reload


==== Commands to control the daemon: ====
==== Daemon Commands ====
'''sudo systemctl enable dayz-server''' - Enables server autostart when the OS starts.
* '''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 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 start dayz-server''' - Starting the server.
* '''sudo systemctl stop dayz-server''' - Stopping the server.
 
* '''sudo systemctl status dayz-server''' - Checking the server status.
'''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.

Latest revision as of 12:43, 14 February 2024

Do not run the server as root!
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.