JRehkemper.de

Install Arma3 Exile Server on Ubuntu 20.04 - Guest Post by Bigos

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

  1. Enter MySQL
sudo mysql -u root -p
  1. Create User
create user 'exileserver'@'%';
  1. Create Database
create database exile;
  1. Grant Privileges
grant all privileges on exile.* to 'exileserver'@'%';
  1. 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

  1. 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.

  1. Make the script executable
chmod +x startserver.sh
  1. 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
profile picture of the author

Jannik Rehkemper

I'm an professional Linux Administrator and Hobby Programmer. My training as an IT-Professional started in 2019 and ended in 2022. Since 2023 I'm working as an Linux Administrator.