Arma 3 Exile Server Install on Ubuntu 20.04

Install Arma3 Exile Server on Ubuntu 20.04 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 – DBeaver – https://dbeaver.io/
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

Code you have to execute will be highlighted in codeblocks

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 – http://exilemod.com/ExileServer-1.0.4a.zip
  • 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 —> https://discord.me/exile
  • 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)

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

2. Create User

create user 'exileserver'@'%';

3. Create Database

create database exile;

4. Grant Privileges

grant all privileges on exile.* to 'exileserver'@'%';

5. Flush Privileges

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.

2. Make the script executable

chmod +x startserver.sh

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

To be continued.

Kommentare anzeigen

Wir nutzen Cookies

Um die Nutzung der Website zu verbessern, nutzen wir Cookies.
Desweiteren werden Google-Dienste für das schalten von Werbung verwendet. Mit der Nutzung der Website geben Sie ihr Einverständnis.
Sollte die Nutzung von Cookies abgelehnt werden, kann dies Auswirkung auf die Nutzung der Website haben.