seal-dota / server

Express-based website for the SEAL DOTA league.
https://seal.gg
1 stars 5 forks source link

Server

Dependency Status Dependency Status

This is RD2L's backend and website.

Dependencies

Develop and run locally

Run in Docker

Installation

First, install the project's dependencies.

npm install

Next, get an api key from https://steamcommunity.com/dev/apikey. Either set this as an environment variable or a variable in a .env file - name must be STEAM_API_KEY.

Here's a template with example values for a complete .env file:

POSTGRES_USER='postgres'
POSTGRES_PASSWORD='postgres'
POSTGRES_DB='seal'
POSTGRES_HOST='localhost'
POSTGRES_PORT='5432'
REDIS_HOST='localhost'
REDIS_PORT='6379'
PORT='80'
HTTPS_PORT='443'
SECRET='random characters'
STEAM_API_KEY='get from https://steamcommunity.com/dev/apikey'

For HTTPS configuration, include the following entries:

SSL_KEY='path/to/key.pem'
SSL_CERT='path/to/cert.pem'
SSL_CA='path/to/ca.pem'

Steam bot support can be activated by providing the following:

STEAM_BOT_USERNAME='steam_username'
STEAM_BOT_PASSWORD='steam_password'

Auth requests can be forwarded by providing:

WEBSITE_URL='http://return-to-website.com'

Full database configuration can be configured using:

POSTGRES_USER='postgres'
POSTGRES_PASSWORD='postgres'
POSTGRES_DB='seal'
POSTGRES_HOST='localhost'
POSTGRES_PORT='5432'
POSTGRES_POOL_MAX='10'
POSTGRES_TIMEOUT='30000'

Running

To run locally:

npm start

To run in docker:

make build
make run

Running in docker requires environment variables, not .env variables. Additionally, and unsurprisingly, it requires docker to be installed and running.