94 lines
3.7 KiB
Markdown
94 lines
3.7 KiB
Markdown
# @lfk/backend
|
|
|
|
Backend Server
|
|
|
|
## Quickstart 🐳
|
|
> Use this to run the backend with a postgresql db in docker
|
|
|
|
1. Clone the repo or copy the docker-compose
|
|
2. Run in toe folder that contains the docker-compose file: `docker-compose up -d`
|
|
3. Visit http://127.0.0.1:4010/api/docs to check if the server is running
|
|
4. You can now use the default admin user (`demo:demo`)
|
|
|
|
## Dev Setup 🛠
|
|
> Local dev setup utilizing sqlite3 as the database.
|
|
|
|
1. Rename the .env.example file to .env (you can adjust app port and other settings, if needed)
|
|
2. Install Dependencies
|
|
```bash
|
|
yarn
|
|
```
|
|
3. Start the server
|
|
```bash
|
|
yarn dev
|
|
```
|
|
|
|
### Run Tests
|
|
```bash
|
|
# Run tests once (server has to run)
|
|
yarn test
|
|
|
|
# Run test in watch mode (reruns on change)
|
|
yarn test:watch
|
|
|
|
# Run test in ci mode (automaticly starts the dev server)
|
|
yarn test:ci
|
|
```
|
|
|
|
### Use your own mail templates
|
|
> You use your own mail templates by replacing the default ones we provided (either in-code or by mounting them into the /app/static/mail_templates folder).
|
|
|
|
The mail templates always come in a .html and a .txt variant to provide compatability with legacy mail clients.
|
|
Currently the following templates exist:
|
|
* pw-reset.(html/txt)
|
|
|
|
### Generate Docs
|
|
```bash
|
|
yarn docs
|
|
```
|
|
|
|
## ENV Vars
|
|
> You can provide them via .env file or docker env vars.
|
|
> You can use the `test:ci:generate_env` package script to generate a example env (uses bs data as test server and ignores the errors).
|
|
|
|
| Name | Type | Default | Description
|
|
| - | - | - | -
|
|
| APP_PORT | Number | 4010 | The port the backend server listens on. Is optional.
|
|
| DB_TYPE | String | N/A | The type of the db u want to use. It has to be supported by typeorm. Possible: `sqlite`, `mysql`, `postgresql`
|
|
| DB_HOST | String | N/A | The db's host's ip-address/fqdn or file path for sqlite
|
|
| DB_PORT | String | N/A | The db's port
|
|
| DB_USER | String | N/A | The user for accessing the db
|
|
| DB_PASSWORD | String | N/A | The user's password for accessing the db
|
|
| DB_NAME | String | N/A | The db's name
|
|
| NODE_ENV | String | dev | The apps env - influences debug info. Also when the env is set to "test", mailing errors get ignored.
|
|
| POSTALCODE_COUNTRYCODE | String/CountryCode | N/A | The countrycode used to validate address's postal codes
|
|
| PHONE_COUNTRYCODE | String/CountryCode | null (international) | The countrycode used to validate phone numers
|
|
| SEED_TEST_DATA | Boolean | False | If you want the app to seed some example data set this to true
|
|
| MAILER_URL | String(Url) | N/A | The mailer's base url (no trailing slash)
|
|
| MAILER_KEY | String | N/A | The mailer's api key.
|
|
| IMPRINT_URL | String(Url) | /imprint | The link to a imprint page for the system (Defaults to the frontend's imprint)
|
|
| PRIVACY_URL | String(Url) | /privacy | The link to a privacy page for the system (Defaults to the frontend's privacy page)
|
|
|
|
|
|
## Recommended Editor
|
|
|
|
[Visual Studio Code](https://code.visualstudio.com/)
|
|
|
|
### Recommended Extensions
|
|
|
|
* will be automatically recommended via ./vscode/extensions.json
|
|
|
|
## Staging
|
|
### Branches & Tags
|
|
* vX.Y.Z: Release tags created from the main branch
|
|
* The version numbers follow the semver standard
|
|
* A new release tag automaticly triggers the release ci pipeline
|
|
* main: Protected "release" branch
|
|
* The latest tag of the docker image get's build from this
|
|
* New releases get created as tags from this
|
|
* dev: Current dev branch for merging the different feature branches and bugfixes
|
|
* The dev tag of the docker image get's build from this
|
|
* Only push minor changes to this branch!
|
|
* To merge a feature branch into this please create a pull request
|
|
* feature/xyz: Feature branches - nameing scheme: `feature/issueid-title`
|
|
* bugfix/xyz: Branches for bugfixes - nameing scheme:`bugfix/issueid-title` |