backend/README.md
Fred Boniface 31f104f51b Run prettier
Signed-off-by: Fred Boniface <fred@fjla.uk>
2023-08-26 00:38:26 +01:00

2.7 KiB

OwlBoard

OwlBoard is both a backend API, and a frontend Arrival/Departure board webapp.

Powered by Node.JS and using the ldbs-json module, the OwlBoard API provides up to date train departure information for any station in the UK.

Build

To build the application with Docker, clone the repository and run docker build

API Endpoints:

API Documentation has been removed as it is now out of date. I do intent to re-write the documentation at a later date.

Configuration:

Configuration options are set through environment variables. These configuration options are shared with other programs in the OwlBoard ecosystem.

VAR DEFAULT REQUIRED PURPOSE
OWL_SRV_PORT 8460 NO Web Server Port
OWL_SRV_LISTEN 0.0.0.0 NO Web Server Listen Address
OWL_DB_USER owl NO Database Username
OWL_DB_PASS twittwoo NO Database Password - Do not leave as default in production
OWL_DB_NAME owlboard NO Database Name
OWL_DB_PORT 27017 NO Database Server Port
OWL_DB_HOST localhost NO Database Server Host
OWL_LDB_KEY YES National Rail LDBWS API Key
OWL_LDB_SVKEY NO National Rail LDBSVWS API Key
OWL_LDB_CORPUSUSER YES Network Rail NROD Username
OWL_LDB_CORPUSPASS YES Network Rail NROD Password
OWL_GIT_ISSUEBOT NO Gitea API Key for issue reporting
OWL_GIT_APIENDPOINT NO Gitea API Endpoint

In the case that OWL_LDB_SVKEY is not available, staff versions of departure board, etc. will not be available.

In the case that OWL_GIT_ISSUEBOT is not available, the 'Report Issue' page will not be able to POST data.

Database

OwlBoard uses MongoDB

The OwlBoard database is managed by the dbmanager application which will configure and maintain the database and should be run at least twice a day to ensure timetable data is up to date, see https://git.fjla.uk/owlboard/db-manager.