74 lines
3.6 KiB
Markdown
74 lines
3.6 KiB
Markdown
# @lfk/mailer
|
|
[![Build Status](https://ci.odit.services/api/badges/lfk/mailer/status.svg?ref=refs/heads/main)](https://ci.odit.services/lfk/mailer)
|
|
|
|
Handles mail generation and sending (pw reset, welcome mail, etc)
|
|
|
|
## Dev Setup 🛠
|
|
> Local dev setup
|
|
|
|
1. Rename the .env.example file to .env (you can adjust app port and other settings, if needed) or generate a example env with `yarn && yarn test:generate_env`.
|
|
2. Install Dependencies
|
|
```bash
|
|
yarn
|
|
```
|
|
3. Start the server
|
|
```bash
|
|
yarn dev
|
|
```
|
|
|
|
## Templates
|
|
> The mailer uses html and plaintext templates to generate various mails.
|
|
> The templates are stored in src/templates by default.
|
|
|
|
We provide a set of default templates that we use for the ["Lauf für Kaya!" charity run](https://lauf-fuer-kaya.de).
|
|
We use handlebars for templateing utilizing i18next for translation - the i18n string format in the templates is : `{{__ "string"}}`
|
|
You can provide your own templates by replacing the ones we provided before compiling the project or by simply mounting your custom templates into the docker container.
|
|
|
|
The server currently needs the following templates to work:
|
|
* pw-reset.html
|
|
* pw-reset.txt
|
|
* test.html
|
|
* test.txt
|
|
* welcome_runner.html
|
|
* welcome_runner.txt
|
|
|
|
| Name | Type | Default | Description
|
|
| - | - | - | -
|
|
| APP_PORT | Number | 4010 | The port the backend server listens on. Is optional.
|
|
| NODE_ENV | String | dev | The apps env - influences debug info.
|
|
| API_KEY | String(min length: 64) | Random generated string | The api key you want to use for auth (query-param `key`), has to be at least 64 chars long.
|
|
| API_URL | String(url) | "http://localhost:8080" | The URL ponting to the base (root) of the lfk runner system.
|
|
| MAIL_SERVER | String(FQDN) | None | The mailserver (smtp) used to send mails via nodemailer.
|
|
| MAIL_PORT | Number | 25 | The mailserver's port (smtp).
|
|
| MAIL_USER | String | None | The username used to authenticate against the mailserver.
|
|
| MAIL_PASSWORD | String | None | The password used to authenticate against the mailserver.
|
|
| MAIL_FROM | String | None | The mail address that mails get sent from.
|
|
| PRIVACY_URL | String | "/privacy" | The url path that get's attached to the app url to link to the privacy page.
|
|
| IMPRINT_URL | String | "/imprint" | The url path that get's attached to the app url to link to the imprint page.
|
|
| COPYRIGHT_OWNER | String | "LfK!" | Text that gets inserted as the "copyright by" owner in the mails.
|
|
| EVENT_NAME | String | "Testing 4 Kaya" | The event's name - used to generate the mail text.
|
|
| CONTACT_MAIL | String(email) | MAIL_FROM | Contact mail address listed at the bottom of some mail templates.
|
|
|
|
## Recommended Editor
|
|
|
|
[Visual Studio Code](https://code.visualstudio.com/)
|
|
|
|
### Recommended Extensions
|
|
|
|
* will be automatically recommended via ./vscode/extensions.json
|
|
* we also provide a config for i18n-ally in the .vscode folder
|
|
|
|
## 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` |