- TypeScript 95%
- Svelte 4%
- JavaScript <1%
- CSS <1%
- Python <1%
- 4 more languages <1%
Ordner #
Ordner is a self-hosted, privacy-first replacement for the mail, calendar, contacts and file storage that small organisations rent from large platforms: households, clubs, associations, and small and medium businesses, first of all in the EU. The convenience is the same; the difference is who holds the data.
It is one codebase that runs either as a single organisation's own install or as one hosted install serving many independent organisations.
Status: under active development and not yet released. It runs on a test installation; interfaces, record formats and deployment steps still change. Do not put data you cannot afford to lose on it yet.
What it provides #
- Mail over JMAP (RFC 8620/8621), IMAP and SMTP submission, with inbound SMTP that checks SPF, DKIM, DMARC and ARC, scans for viruses and scores for spam and impersonation, and outbound delivery with DKIM signing, MTA-STS and DANE.
- Calendars and contacts over CalDAV and CardDAV, and over JMAP.
- Files over WebDAV and JMAP, with sharing, versions and trash.
- Identity without passwords: passkeys (WebAuthn) for people, scoped app passwords for protocol clients, OpenID Connect for applications, delegation and groups.
- Web applications for mail, calendar, contacts, files, meetings, settings and migration, in 28 European languages (some translations still await native review) and built to WCAG 2.2 AA.
- Migration from an existing provider over IMAP, POP3, CalDAV, CardDAV and WebDAV.
- Operations: an administration console, health checks ("doctors") for every service, and S3-compatible object storage as the only durable store, encrypted at rest.
Layout #
| Path | What it is |
|---|---|
auth/, admin/ |
Identity and the administration console |
mail/, smtp/, legacy-mail/ |
Mail store and JMAP, inbound/outbound SMTP, the IMAP and submission gateway |
webdav/, calendar/, contacts/ |
Files, calendars and address books |
import/ |
Migration from other providers |
meet/ |
Video meetings: the records, the lobby and the tokens; the media server runs beside it |
www/, apps/ |
The public origin and the web applications |
ops/ |
Operator tooling: storage checks, garbage collection, the doctor CLI |
packages/ |
Shared libraries, from protocol codecs to the encrypted record store |
seams/, interop/, perf/ |
Cross-service contract tests, interoperability tests, performance suites |
deploy/ |
The Ansible playbook and reference configuration for an install |
docs/ |
Design, areas, engineering and operations documentation |
Building and testing #
Requires Node.js 26.11.1 or later, the nodejs.org build (it includes
Temporal).
$ npm install
$ npm run build
$ npm run typecheck
$ npm test
npx biome check . lints and formats, npm run check:deps checks that every
workspace declares what it imports, and npm run test:perf runs the
performance suites.
Documentation #
- docs/DESIGN.md: what the suite is, what it promises, and a map of every other document.
- docs/public/: the product and its security posture for people evaluating or auditing it.
- docs/operations/install.md: standing up an install.
- NEXT.md: what is still missing.
Security issues: see the vulnerability disclosure policy.
Licence #
EUPL-1.2, the European Union Public Licence.