Skip to main content
Besides the web server, Lekalao needs two processes, plus one that is optional.

Horizon: the workers

Horizon works the queues. Three supervisors, one per queue: Without Horizon, nothing goes out.
/etc/systemd/system/lekalao-horizon.service
TimeoutStopSec lets an import in progress finish before the stop. The dashboard is at https://lekalao.example.com/horizon, for platform administrators only.
To add sending workers, raise maxProcesses on the sending supervisor in config/horizon.php, then run php artisan horizon:terminate. The real rate is still capped by your providers and by the receiving mailboxes (Sending safety).

The scheduler

One cron line, for the lekalao user:
It sets off: The times are UTC. Every task is listed in Commands.
With Docker or a PaaS without cron, run php artisan schedule:work as one more process.

The SMTP relay

Optional. So that software can send over SMTP through Lekalao (SMTP relay):
/etc/systemd/system/lekalao-smtp.service
The relay does not speak TLS, and it receives API tokens as passwords. Leave it on 127.0.0.1, or put a TLS terminator in front of it (stunnel, HAProxy). Never expose it as it is on the internet.
So that Settings → Documentation tells the teams about it:
.env

After every deployment

Horizon keeps the old code in memory:
systemd starts it again with the new one. Restart the SMTP relay too, when it runs.