Run it yourself
Install with Docker
From a clean server to a running instance.
Updated:
The repository ships a compose file with everything the product needs: the mail server, the database, object storage, the meeting server and the document editor. One machine runs all of it for a small organisation.
Before starting
Docker and Docker Compose v2 on the host, and Go 1.25 or later for the one-time mail server bootstrap. Outbound port 25 has to be open: most providers block it until asked, and mail cannot be delivered without it.
Ports 25, 143, 465, 587 and 993 must be free on the host.
Clone and configure
Copy the example environment file and set the three values marked as required: the database password, the mail server administration secret and the object storage password. Everything else has a working default for a first run.
Start it
The api container applies the database migrations itself on startup, in order and idempotently. There is nothing to run by hand for that.
Give the containers a minute to report healthy, then run the mail server bootstrap once: a fresh instance refuses every administrative call until it has been named.
Create the first organisation
The public edition has no self-service sign-up page. The first organisation and its owner mailbox are created once, on an empty database, by a command that refuses to run again once an organisation exists.
Leaving the owner password unset has one generated and printed a single time.
Open the application
The compose file runs the backend only. For a first look, run the frontend development server, which proxies the API. For a real deployment a reverse proxy serves the built frontend and the API on one origin, which is required: the mail server sends no CORS headers, so the webmail and the API have to share an origin.