Skip to content

dougestey/arbiter

Repository files navigation

Arbiter

A high-performance, WebSocket-compatible server interface to the EVE Swagger API, built on Sails.js.

The authority for GLOSS.

Features

  • EVE SSO Authentication
    • Automatic refresh token handling
  • EVE Swagger API (ESI) support
  • REST support for all models
  • WebSocket pub/sub support for all models
  • Database agnosticism thanks to Waterline ORM
  • Sophisticated Redis-based job scheduler backed by Kue
    • Updates location, ship, status for active character sockets every 5 seconds

How to run

Arbiter requires Node 8, a running database server, and a Redis instance. MongoDB is configured by default, but any Waterline-supported database will do. A sample nginx config is provided.

You need a recent copy of the EVE SDE. Conversions are provided by the wonderful Fuzzwork. Depending on the database you choose for this (it is not the same as Arbiter's internal DB) you'll want to download PostgreSQL dump, the MySQL dump, or what have you.

Example (assuming db eve running on PostgreSQL): pg_restore --no-privileges --no-owner -d eve postgres-20180529-TRANQUILITY.dmp

  • Register an EVE application at https://developers.eveonline.com
  • Enter client ID & secret in the .env (example provided here)
  • sudo npm i -g yarn ember-cli sails@1.0.0-45
  • git clone git@github.com:dougestey/arbiter.git
  • cd arbiter
  • yarn
  • sails lift (with Sails CLI installed) or npm start

Server currently listens on :8080, this can be configured in config/env.

Kue web frontend is available at :6565.

Example routes

  • GET /api/systems
  • GET /api/systems/:systemId