コンテンツにスキップ

Kojo

Kojo(工場)は、日本語で「工場」を意味します。その名のとおり、Kojoは、モダンで安全、高性能なセルフホスト型メールシステムを生み出す「工場」です。

Kojoは、連携する2つの部分で構成されています。

パート1・メールシステムを生成

工場

工場は、複数のデーモンを設定して、数千人のユーザーまで拡張できる、完全で非常に安全なメールシステムとして動作させるPythonプログラムです。すべてのデーモン向けに数十もの設定ファイルを生成し、各ファイルが互いに矛盾なく整合するようにします。これにより、各デーモンがシームレスに連携し、完全に統合された、デフォルトで安全なメールサービスを提供します。

工場が設定するデーモンのプロジェクトは次のとおりです。

プロジェクト役割Webサイト
Postfixメール転送(SMTP):メールの送受信postfix.org
Dovecotメールボックスの保管とアクセス(IMAP)dovecot.org
OpenLDAPユーザーアカウントを保持するディレクトリopenldap.org
Rspamd迷惑メールのフィルタリングrspamd.com
ClamAVウイルススキャン、ウイルス定義の自動更新、Postfixとの連携clamav.net
DCCDistributed Checksum Clearinghousesによる大量メールの検出rhyolite.com/dcc
SOGoWebメール、カレンダー、連絡先sogo.nu
nginxWebサーバーnginx.org
PostgreSQLデータベースpostgresql.org
Redisインメモリデータストアredis.io
Memcachedインメモリキャッシュmemcached.org
YumeiTLS証明書プロジェクトページ
Anteiデーモンの監視プロジェクトページ
KojoダッシュボードシステムとユーザーのWebベース管理下記を参照

各デーモンの連携

下の図は、Kojoメールシステムの各デーモンがどのように通信するかを示しています。メール用ポートは暗号化の状況によって色分けされています。緑は常に暗号化されるポート、黄は場合により暗号化されるポート(相手のSMTPサーバーの暗号化対応状況による)、赤は暗号化されないポート(Let’s EncryptがHTTPの非暗号化通信を必要とするため)です。

Kojoメールシステムのアーキテクチャ図。メール用ポート、各デーモン、通信の流れを示しています。図中の文字は英語です。
Kojoメールシステムにおけるデーモン間の通信(図中の文字は英語です)。図をクリックすると原寸で開きます。

図をPDFでダウンロード

パート2・メールシステムを管理

Kojoダッシュボード

Kojoダッシュボードは、メールシステムとそのユーザーを管理するためのWebベースのインターフェースです。管理者はKojoダッシュボードからアカウントを管理し、ユーザーはサインインして自分のパスワードを変更できます。

  • 複数のドメインに対応: 複数のドメインにまたがるメールアカウントを管理します。
  • 統合されたLDAPフロントエンド: KojoのOpenLDAPユーザーデータベースに対する直感的なインターフェースを提供し、数千人のユーザーを管理できます。
  • システムの状態を一目で把握: メールシステムの健全性と状態の概要を管理者に提供します。
  • ユーザーを複数の切り口で表示: 管理者は、ドメイン別、国別、場所別にユーザーを表示できます。

セルフホストを前提とした設計

Kojoは、お客様ご自身のハードウェア上のFreeBSDで動作します。お客様のデータや通信が第三者と共有されることはありません。