Skip to content

hardytool/server

Repository files navigation

Server

Depfu CI status Checks status Uptime Robot status

This is RD2L's backend and website.

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

Project structure

├── src
│   ├── api
│   │   └── *.js       # API-oriented controllers
│   ├── assets
│   │   └── **/*       # Static files (including images, markdown, etc.)
│   ├── lib
│   │   └── *.js       # Common utilities/shared libraries
│   ├── migrations
│   │   └── *.sql      # Database migration files run at startup in order starting from 001.sql
│   ├── pages
│   │   └── *.js       # Page content controllers
│   ├── repos
│   │   └── *.js       # Database model repositories
│   ├── templates
│   │   └── **/*.pug   # Template files structured as a hierarchical tree
├── Dockerfile
├── docker-compose.yml # Development-oriented quickstart compose file
├── Makefile           # Command wrapper
├── package.json
└── package-lock.json