Exile Server Manager, or ESM for short, is a Discord Bot that facilitates interacting with an Arma 3 Exile server. Server owners and players alike can link their Steam accounts with ESM to enable running various commands to interact with their characters on any server they have joined.
ESM was and still is built for the Exile community with a majority of ESM's features started out as suggestions. If you would like to make a suggestion, please join our Discord and post it in the #suggestions channel.
Are you a server owner or player looking to use Exile Server Manager? If so, please visit my Getting Started section of the Wiki as this README is focused on the development side of ESM.
ESM is written in MRI Ruby 2.7.5 with DiscordRB 3.4.0 and PostgreSQL 12. I, personally, use RVM to manage Ruby, but ESM is not dependent on it.
ESM is developed using Ubuntu via Multipass on Windows. The Arma server runs on the Windows and ESM runs on the linux VM. This setup allows the Arma server to be able to communicate with the bot via a local IP.
You will need to install the following to develop ESM locally:
- A Linux environment (Ubuntu recommended)
- Ruby 2.7.1
- Bundler
gem install bundler
- PostgreSQL 12
- Rust
- A Windows environment
- Arma 3
- Arma 3 Server with Exile mod and @esm loaded
- Rust
ESM was and still is built for the Exile community with a majority of ESM's features started out as suggestions. If you would like to make a suggestion, please join our Discord and post it in the #suggestions channel.
Exile Server Manager work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
This guide expects that you have knowledge and experience working with the following:
- Ruby 2+
- Environment variables
- ActiveRecord and SQL
- RSpec
- Discordrb
Steps:
- Windows host
- Install Multipass
- Create VM:
multipass launch --cpus 4 --mem 8G --disk 75G --name esm
- Install Ruby
- Install Rust
- Install Docker and Docker Compose
- Clone repo
- Start the docker images
sudo docker compose up -d
- Configure .env
- Duplicate
spec/example.test_data.yml
, rename totest_data.yml
, and configure the entire file - bin/setup