mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2026-01-06 21:42:49 +00:00
feat: add backend
This commit is contained in:
70
README.md
Normal file
70
README.md
Normal file
@@ -0,0 +1,70 @@
|
||||
[](https://gitlab.com/openstapps/backend/commits/master)
|
||||
# backend (a reference implementation of a StApps backend)
|
||||
This project is a reference implementation for a StApps backend. It provides an HTTP API to index data into a database,
|
||||
perform full text search, sorts and filters. It also delivers the configuration needed by the app. The API is specified
|
||||
within the [@openstapps/core](https://gitlab.com/openstapps/core).
|
||||
|
||||
If you want to perform requests, index data or search within JavaScript or TypeScript you should consider using
|
||||
[@openstapps/api](https://gitlab.com/openstapps/api)
|
||||
|
||||
# Usage
|
||||
This backend is not a standalone software. It needs a database like Elasticsearch to work.
|
||||
|
||||
If you just want to use the backend you should consider using
|
||||
[minimal-deployment](https://gitlab.com/openstapps/minimal-deployment). The minimal-deployment will provide
|
||||
you with everything you need to run this backend.
|
||||
|
||||
# Local usage for development purposes
|
||||
## Requirements
|
||||
* Elasticsearch (5.5)
|
||||
* Node.js (~10) / NPM
|
||||
* Docker
|
||||
|
||||
## Start Database (Elasticsearch)
|
||||
Elasticsearch needs some configuration and plugins to be able to work
|
||||
with the backend. To save you some work we provide a
|
||||
[docker image](https://gitlab.com/openstapps/database) which
|
||||
only needs to be executed to work with the backend.
|
||||
|
||||
Run `docker run -d -p 9200:9200 registry.gitlab.com/openstapps/database:master`
|
||||
|
||||
Elasticsearch should be running at port 9200 now. If you have problems with
|
||||
getting elasticsearch to work, have a look in the
|
||||
[README](https://gitlab.com/openstapps/database) of the image
|
||||
first.
|
||||
|
||||
## Start backend
|
||||
Run `npm install` and `npm run build`, then start with `npm start`. The server should now be accepting connections at `http://localhost:3000`.
|
||||
|
||||
# Environment Variables
|
||||
To select a database implementation you have to set the `NODE_CONFIG_ENV` variable. At the time only `NODE_CONFIG_ENV=elasticsearch` is supported.
|
||||
Set `NODE_ENV=production` to run backend for production usages. In production the backend expects some kind of monitoring to be set via the
|
||||
environment. At the time only SMTP is being implemented. The backend wouldn't start if you don't provide SMTP authentification. Alternatively
|
||||
you can set `ALLOW_NO_TRANSPORT=true`. To set up an SMTP configuration have a look at
|
||||
[@openstapps/logger](https://gitlab.com/openstapps/logger).
|
||||
|
||||
## Config files
|
||||
Each university can have it's specific config for the general backend and app and for all databases.
|
||||
|
||||
All config files can be found in `./config/`. There is a `default.ts` which is used by default. You can create an
|
||||
university specific file with following naming scheme: `default-<university license plate>.ts`
|
||||
|
||||
A university specific file will only overwrite all properties of the `default.ts` that are set in the file itself.
|
||||
To start the backend using your configuration you have to provide the `NODE_APP_INSTANCE` environment variable
|
||||
with your university license plate.
|
||||
|
||||
To set a database you have to provide the `NODE_CONFIG_ENV` environment variable with the name of the database.
|
||||
At the time only Elasticsearch is implemented.
|
||||
|
||||
To create your university specific config file for the elasticsearch you have to create a file with following naming
|
||||
scheme: `elasticsearch-<university license plate>.ts`.
|
||||
|
||||
## Debugging
|
||||
Set `ES_DEBUG=true` to enable verbose Elasticsearch tracing information.
|
||||
This can be useful to debug some issues between backend and elasticsearch.
|
||||
|
||||
## Setting a different url for elasticsearch
|
||||
Set `ES_PORT_9200_TCP_ADDR` to change the elasticsearch-http-address which by default is `localhost`.
|
||||
Set `ES_PORT_9200_TCP_PORT` to change the elasticsearch port which by default is `9200` .
|
||||
|
||||
## [Contributing](https://gitlab.com/openstapps/projectmanagement/blob/master/CONTRIBUTING.md)
|
||||
Reference in New Issue
Block a user