diff --git a/doc/daemon.adoc b/doc/daemon.adoc new file mode 100644 index 0000000..4c8d016 --- /dev/null +++ b/doc/daemon.adoc @@ -0,0 +1,31 @@ += Long running daemon +2022-09-26 + +There are two scripts that need to be executed on a regular basis: + +* Processing newly arrived emails +* Generating new instances of recurring tasks + +This can be done by the cli app, but that requires a manual action. Generating new instances of recurring tasks should happen only once a day, but the processing of new emails is ideally done as often as every couple of minutes. One can use a cron job to do this, but that requires a machine that is switched on for the majority of the day, at least during waking hours. to make sure changes are reflected. At that point we might as well have a real service, with proper logging, etc. The `gte-daemon` is just that. The cli can still be used as a fallback though. + +In the past it has run as a systemd service, but now there is a simple Docker container for portability between hosting providers. See `Dockerfile.daemon` in the repository. It is a simple service and does not require much. + +== Parameters and configuration + +The Dockerfile is configured with the following environment variables: + +* `IMAP_URL` IMAP hostname including port number, for instance: `imap.example.com:993` +* `IMAP_USER` +* `IMAP_PASSWORD` +* `IMAP_FOLDER_PREFIX` To be used if combined with a normal email account, see https://ewintr.nl/gte/basic-flow/[basic flow], for instance `GTE/` + +* `SMTP_URL` SMTP hostname, including port number, for instance: `smtp.example.com:465` +* `SMTP_USER` +* `SMTP_PASSWORD` + +* `GTE_TO_NAME` Name of recipient when sending mails for tasks, for instance `gte` +* `GTE_TO_ADDRESS` Address of recipient when sending mails for tasks, for instance: `gte@example.com` +* `GTE_FROM_NAME` Name of sender when sending mails for tasks, fot instance: `gte` +* `GTE_FROM_ADDRESS` Address of recipient when sending mails for tasks, for instance: `gte@example.com` +* `GTE_DAYS_AHEAD` Number of days in the future for which recurring tasks must be instantiated, for example: `6` +