Backend Server
Go to file
Philipp Dormann 5ef3b6eb97
merge dev to main (#208)
Co-authored-by: Nicolai Ort <info@nicolai-ort.com>
Reviewed-on: #208
Co-authored-by: Philipp Dormann <philipp@philippdormann.de>
Co-committed-by: Philipp Dormann <philipp@philippdormann.de>
2023-11-06 17:18:48 +00:00
.vscode 🐞 VSCode formatting broke code by removing all unused 2020-12-04 17:05:13 +01:00
scripts Added testing env check 2021-03-06 13:41:10 +01:00
src merge dev to main (#208) 2023-11-06 17:18:48 +00:00
.dockerignore Added sqlite testing db to ignores 2020-11-25 18:32:01 +01:00
.drone.yml merge dev to main (#208) 2023-11-06 17:18:48 +00:00
.env.ci Set country code for the ci env to DE 2021-01-19 15:49:35 +01:00
.env.example Added sqlite as to env.sample db of choice [skip ci] 2021-01-21 15:27:11 +01:00
.gitignore merge dev to main (#208) 2023-11-06 17:18:48 +00:00
CHANGELOG.md merge dev to main (#208) 2023-11-06 17:18:48 +00:00
docker-compose.yml Updated default docker-compose 2021-04-07 16:10:22 +02:00
Dockerfile merge dev to main (#208) 2023-11-06 17:18:48 +00:00
jest.config.js basic jest + typescript support 2020-12-05 18:49:09 +01:00
LICENSE Initial commit 2020-11-24 16:51:18 +00:00
licenses.md 🚀Bumped version to v0.13.0 2023-02-02 12:58:19 +01:00
ormconfig.js basic build works 2020-12-12 12:29:14 +01:00
package.json merge dev to main (#208) 2023-11-06 17:18:48 +00:00
pnpm-lock.yaml merge dev to main (#208) 2023-11-06 17:18:48 +00:00
README.md merge dev to main (#208) 2023-11-06 17:18:48 +00:00
tsconfig.json basic build works 2020-12-12 12:29:14 +01:00

@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
pnpm i
  1. Start the server
pnpm dev

Run Tests

# Run tests once (server has to run)
pnpm test

# Run test in watch mode (reruns on change)
pnpm test:watch

# Run test in ci mode (automaticly starts the dev server)
pnpm 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

pnpm 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)

Visual Studio Code

  • 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
  • dev: Current dev branch for merging the different feature branches and bugfixes
    • New releases get created as tags from this
    • 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 - naming scheme: feature/issueid-title
  • bugfix/xyz: Branches for bugfixes - naming scheme:bugfix/issueid-title