Skip to content

Kojo

Kojo (工場) is the Japanese word for “factory”, and that is exactly what Kojo is: a factory for modern, secure, high-performance, self-hosted email systems.

Kojo has two parts that work together.

Part 1 · Generates your email system

The factory

The factory is a Python program that configures a set of daemons to operate as a complete and very secure email system that scales to thousands of users. It generates dozens of configuration files for all of the daemons and ensures that every file is compatible with the others, so the daemons interoperate seamlessly to provide fully integrated, secure-by-default email services.

These are the projects whose daemons it configures:

ProjectRoleWebsite
PostfixMail transport (SMTP): sends and receives emailpostfix.org
DovecotMailbox storage and access (IMAP)dovecot.org
OpenLDAPDirectory holding the user accountsopenldap.org
RspamdSpam filteringrspamd.com
ClamAVAntivirus scanning, automatic updates of virus signatures, and the connection to Postfixclamav.net
DCCBulk-mail detection with the Distributed Checksum Clearinghousesrhyolite.com/dcc
SOGoWebmail, calendar and contactssogo.nu
nginxWeb servernginx.org
PostgreSQLDatabasepostgresql.org
RedisIn-memory data storeredis.io
MemcachedIn-memory cachememcached.org
YumeiTLS certificatesProject page
AnteiDaemon monitoringProject page
Kojo DashboardWeb-based management of the system and its usersSee below

How the daemons fit together

The diagram below shows how the daemons of a Kojo email system communicate. Mail ports are colour-coded by encryption: green ports are always encrypted, yellow ports are sometimes encrypted (depending on the other SMTP server’s encryption capability), and red ports are never encrypted (Let’s Encrypt requires unencrypted HTTP).

Architecture diagram of a Kojo email system, showing the mail ports, the daemons and how they communicate.
The daemons of a Kojo email system and how they communicate. Click the diagram to open it full size.

Download the diagram as a PDF

Part 2 · Manages your email system

The Kojo Dashboard

The Kojo Dashboard is a web-based interface for managing the email system and its users. Administrators manage accounts from the Kojo Dashboard, and users sign in to change their own passwords.

  • Multiple domains: it manages email accounts across multiple domains.
  • Integrated LDAP front end: provides an intuitive interface to Kojo’s OpenLDAP user database for managing thousands of users.
  • System health at a glance: it gives administrators an overview of the email system’s health and status.
  • Multiple views of users: administrators can view users by domain, by country and by location.

Self-hosted by design

Kojo runs on FreeBSD, on your own hardware. Your data and communications are never shared with third parties.