> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lekalao.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Requirements

> What the server needs, and how to size it.

## Software

| Component       | Version      | Why                                                                    |
| --------------- | ------------ | ---------------------------------------------------------------------- |
| PHP             | 8.4 or later | Laravel 13 and the Symfony Mailer 8 bridges.                           |
| PostgreSQL      | 15 or later  | `jsonb`, partial indexes, filtered aggregates. MySQL is not supported. |
| Redis           | 7 or later   | Queues (Horizon), cache, sessions.                                     |
| Node.js         | 22 or later  | Building the interface, and rendering MJML at send time.               |
| Composer        | 2            | PHP dependencies.                                                      |
| Nginx or Apache |              | The web server in front of PHP-FPM.                                    |

PHP extensions: `pdo_pgsql`, `redis`, `intl`, `mbstring`, `openssl`, `zip`, `gd`, `pcntl` (for Horizon).

<Note>
  Node.js must stay installed in production, with the dependencies from
  `package.json`: the MJML editor uses it to render e-mails as they are sent.
</Note>

## Network

| Direction           | For                                                                          |
| ------------------- | ---------------------------------------------------------------------------- |
| Inbound 443         | Interface, API, public pages, tracking pixels and links, provider feedback.  |
| Inbound 2525        | Only if you open the [SMTP relay](/developers/smtp-relay) to other machines. |
| Outbound 443        | Provider APIs, RSS feeds, outgoing webhooks, link checking.                  |
| Outbound 587 or 465 | When a provider is wired up over SMTP.                                       |
| DNS                 | Checking the sending domains (SPF, DKIM, DMARC).                             |

Lekalao has to be reachable from the internet over HTTPS: subscribers click its links, and providers send it bounces and complaints.

## Sizing

The figures below are starting points; sending depends mostly on the rate your providers accept.

| Size                      | Server                                                   | Sending workers         |
| ------------------------- | -------------------------------------------------------- | ----------------------- |
| Up to 50,000 subscribers  | 2 vCPU, 4 GB, everything on one machine                  | 3 to 5                  |
| Up to 500,000 subscribers | 4 vCPU, 8 GB; PostgreSQL preferably on its own           | 10                      |
| Beyond that               | Database and Redis of their own, several Horizon servers | As your providers allow |

Leave disk room for the database: every e-mail sent leaves a row, and every open or click another one, kept 365 days by default.
