This article will guide you through a step by step installation of an Arma 3 Exile Server on Ubuntu 20.04. This is a Guest Post written by Bigos.
An installed Ubuntu 20.04 Server 64bit (CLI only) and a DBMS is recommended for
an easy administration of your database is required.
DBMS used in this tutorial is DBeaver.
It is assumed your server is hosted via a root server provider to avoid fiddling
with ports/firewall.
This guide aims to provide a step-by-step guide to install Arma3 Exile without
mods onto Ubuntu 20.04.
This guide will be updated if any bugs are reported to me.
Discord: Bigos++#8054
What packages to install?
- Steamcmd – This tool is needed to download the Arma3 serverfiles
- Mysql Server – Needed for Exile
- Arma 3 Server – Vanilla server
What else do I need?
- Exile Official Server Files – avaible on the official Exile Discord server or via this link
- Updated Bikey because the current bikey is outdated and not functional – Get it on the official Exile Discord server
- Preferably a blank Steam Account to avoid security concerns – (only needed when you are planing to use mods)
- Discord Link
- Exile Client Files – Extract from your local Arma3 installation
- WinSCP to move files to your server
Additional Information
Everytime a command starts with „sudo“ it is expected that you have change back to your standard user with privileges and after execution changed back to your new user „steamserver“.
Step 1. – Preparations
To successfully install an Arma 3 Server some preparations are required.
First update your server.
sudo apt update && upgrade
Reboot just in case (not mandatory).
reboot
Create an user dedicated for your Arma3 server
sudo adduser steamserver
Install „Steamcmd“
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install lib32gcc1 steamcmd
Install mysql server
sudo apt install mysql-server
Switch to your new user and insert your password when asked
su - steamserver
Add steamcmd to your $PATH variable
nano /home/steamserver/.bashrc
in there navigate using arrow to the bottom off the file and add the following line – to save press ctrl + o and then enter.
export PATH="$PATH:/usr/games"
Step 2. – Installing Arma 3 Server
Start steamcmd and login to your steamaccount
steamcmd
login YOUR_USER_NAME
Set directory to install the serverfiles to
force_install_dir /home/steamserver/exileserver
Install Arma3 server
app_update 233780 validate
Exit steamcmd
exit
Step 3. – Moving Files
Extract the content of ExileServer-1.0.4a.zip into your arma3 root directory
in this case /home/steamserver/exileserver
.
Replace inside the folder „keys“ the exile.bikey with the newly aquired one from Discord.
Extract Exile.sql from inside the archive to your computers desktop for example will be needed later on…
Copy your local Arma3 Exile client files into the same directory as mentioned above /home/steamserver/exileserver (root directory of your server)
Local Arma3 Files are found here:SteamLibrary\steamapps\workshop\content\107410\1487484880
Copy the whole folder and rename it to „@ExileMod“
Step 4. – Configuring Mysql
- Enter MySQL
sudo mysql -u root -p
- Create User
create user 'exileserver'@'%';
- Create Database
create database exile;
- Grant Privileges
grant all privileges on exile.* to 'exileserver'@'%';
- Flush Privileges to reload user-data
flush privileges;
exit
Step 5. – Connecting with DBeaver
We need to allow access to the database outside of localhost/127.0.0.1
sudo nano /etc/mysql/my.cnf
Inside this file at the botton write:
[mysqld]
bind-address = 0.0.0.0
sql-mode=""
default-authentication-plugin=mysql_native_password
Warning!
Using the default-authentication-plugin parameter changes the authentication to
the legacy authentication system possibly being a security risk.
But it is required for extDB2 to work.
This setting lets you connect from everywhere – you can for example use your
change this to a local address if your server is hosted inside your own network.
Restart mysql to make changes take effect.
sudo service mysql restart
Your database is now ready to accept connections from outside your LAN.
Now open your DBeaver:
Click the little arrow down near the „Plug“ symbol and choose mysql
Enter your credentials for your mysql user and the connection information
Serverhost: IP-Address
Database: exile
Username: exileserver
Password: YOUR_DBUSER_PASSWORD
Confirm and congrats! you have configured DBeaver to use your mysql database.
Open a SQL-Editor
Paste the content of the exile.sql file you earlier copied to your desktop into the editor.
Press the highlighted button (3rd from top) to execute the SQL Script
You now have filled your „exile“ database with the needed tables and keys etc..
Now return back to your console/shell.
Now edit the extdb-conf.ini
nano /home/steamserver/exileserver/@ExileServer/extdb-conf.ini
inside the .ini search for [exile]
edit username and password and save the file. (ctrl + o)
Step 6. – Start up your Server
- Create a startup script
nano /home/steamserver/startserver.sh
Inside of this paste the following
#!/bin/bash
cd /home/steamserver/exileserver
./arma3server -config=./@ExileServer/config.cfg -cfg=./@ExileServer/basic.cfg -autoinit -mod="@ExileMod" -servermod="@ExileServer" -profiles >> serverlog.rpt 2>&1
Save the Script with Ctrl + O.
- Make the script executable
chmod +x startserver.sh
- Start your Server
bash startserver.sh
Possible Bugs/Errors
Your server started but your serverlog.rpt gets bombed and is constantly taking
more and more space?
It could be that extDB2 is not initialized properly and a package is missing
to check that -> navigate to /home/steamserver/exileserver/@ExileServer
[http://10.0.11.82/home/steamserver/exileserver/@ExileServer]
and type ldd extDB2.so
your output should look like above
A common missing package is libtbbmalloc.so.2
ATTENTION! Because we are using extDB2 – a 32bit DB Connector we need to install
the 32bit equivalent of the missing package
sudo apt install libtbb2:i386