ESM is a Discord Bot that interfaces with Exile servers through an Arma 3 server mod. By integrating with both Discord and Exile servers, players can manage their territories, check server status, and receive XM8 notifications even while offline. Server owners can monitor and manage their servers directly through Discord.
ESM was and still is built for the Exile community. A majority of ESM's features started as community suggestions. Join our Discord and share your ideas in the #suggestions channel.
This is the source code for ESM's Discord bot. If you're looking to install ESM for your Exile server, please visit our Getting Started Guide.
- Linux
- Docker & Docker Compose
- Discord application
- Understanding of:
- Ruby
- discordrb
- Active Record
- RSpec
- PostgreSQL
- Redis
# Install nix and direnv
# Enable flakes in your nix config
direnv allow
-
Install requirements:
- Linux
- Docker & Docker Compose
- Ruby (recommended to use asdf)
-
Setup environment:
# Clone and enter directory
git clone [repository-url]
cd esm_bot
# Start required databases
docker compose up -d postgres-db redis-db
# Duplicate .env.example and configure
cp .env.example .env
# Edit .env with your configuration
# Initialize database and dependencies
bin/setup
# Start development
bin/dev
- Commands: Modular system with argument parsing, permission handling and validation
- Connection: TCP-based encrypted communication with Arma 3 servers
- Promise-based request/response handling
- Automatic reconnection
- Client and server socket abstractions
- Database: PostgreSQL with Active Record models
- Events: Handles events from Discord and Arma 3 servers
ESM is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.