Skip to content

Requirements

For whoever is running the desk.

The desk ships as containers: one image that runs four roles, plus a database and a cache. That is the supported way to install it, and it is what the rest of these pages assume.

For the container install

MinimumComfortable
CPU2 cores4–8 cores
Memory2 GB8 GB
Disk20 GB40 GB, plus room for attachments
Container runtimeDocker, with the Compose plugin
In front of itAny TLS proxy, nginx, Caddy, Traefik, a load balancer

That is the whole list. PHP, the web server, the queue workers, the scheduler, the websocket server, MariaDB and Valkey are all in the stack.

A desk handling a few thousand tickets a month is comfortable on 4 cores and 8 GB. What grows is attachments and inbound message originals, both on the storage volume, watch that before anything else.

What you supply

TLS and a hostname. The web container speaks plain HTTP on a port you choose; your proxy terminates TLS in front of it. TLS is not optional in practice: the chat widget is embedded in other people’s pages, browsers refuse insecure websockets from a secure page, and the integration API signs requests.

An SMTP relay. Amazon SES, Postmark, Mailgun, your own server. The desk hands mail to it; the usual sender reputation work (SPF, DKIM and DMARC on every brand’s from-address) is yours.

Backups. Two volumes and one file; see Backups.

Optional

An IMAP mailbox, if clients should be able to reply by email or open tickets by writing in. Any IMAP server works, including Microsoft 365 and Google with OAuth rather than a password.

An AI provider key, if you want drafts, summaries, triage or the chat assistant. Anthropic, OpenAI, Google, or any OpenAI-compatible endpoint, including a model on your own hardware.

A billing platform to connect, so the desk knows who your clients are. Without one, clients arrive as guests or as records you make yourself.

What you do not need

  • No Elasticsearch, Meilisearch or any search service. Search is the database’s full-text index.
  • No S3, attachments are a volume.
  • No Node on the server. The front end is built into the image.
  • No separate Redis host; the cache container is in the stack.
  • No licence server, no phoning home.