Installation

Two ways to run Rovela: on our infrastructure, or on yours.

Rovela is the same software either way. The difference is who operates the mail stack — the Postfix and Dovecot instances that actually deliver and store mail — and that difference is most of the work.

Hosted

Nothing to install. Create an account and you have a working sender within a few minutes; start at Quick Start. This is the right choice unless you have a specific reason to run your own mail infrastructure — a data-residency requirement, an existing mail estate you want to keep, or a desire to own the deliverability reputation outright.

If you are writing code against it

There is no client library to install. The API is plain HTTP and JSON, and every example in these docs is a curl command or a fetch call you can paste into a terminal or a script. The base URL is:

https://api.rovela.dev

Self-hosted

Self-hosting means running the whole stack from the repository's docker-compose.yml: the API, the web app, PostgreSQL, and the mail stack. Read docs/PRODUCTION_DEPLOYMENT.md in the repository before you start — it is the operator's guide and it is more current than any summary here would be. It is currently written in Chinese.

What you are taking on

It is worth being clear that this is not a one-command install, because the parts that need care are not the containers:

  • A host with a public IP and a hostname that reverse-resolves to it. Receiving mail from a host whose PTR record does not match its HELO name is refused by most of the internet, and no amount of application configuration fixes it.
  • Ports 25, 465, 587 and 993 reachable from the internet. Many providers block 25 by default; ask before you build.
  • TLS certificates for the API, the web app and the mail hostnames.
  • Configuration split across two environment files, described in section 2 of the deployment guide. The API needs both; starting it with one produces a service that runs and has features quietly switched off.
  • Backups and monitoring. The deployment guide covers both. Mail you cannot restore is mail you have lost.
A self-hosted deployment sends mail under its own reputation. A fresh IP has none, and the first weeks are spent building it — start with low volume to recipients who expect your mail, and watch the bounce and complaint rates rather than the sent count.

Verifying the install

Whichever route you took, the API answers one unauthenticated endpoint. If this returns ok, the API is up and reachable, which is the first thing to establish before debugging anything else:

curl https://api.rovela.dev/health
# ok

From there, add a domain and send a message — the same steps as the hosted path, and the same Quick Start walks them.