Ferroma v0.1.7
Rust-native Self-hosted AGPL-3.0-only v0.1.7

Ferroma

一个 Rust 原生、可自托管的邮件平台——自研 SMTP 与 IMAP 服务器、自研 MIME 邮件核心与存储引擎,不封装 Postfix、Dovecot 等任何现有邮件服务器,目标是掌握全部技术栈。

                           FERROMA
                              |
      +-----------------------+-----------------------+
      |                       |                       |
               Webmail     Clients      Admin
      |                       |                       |
      +-----------------------+-----------------------+
                              |
                 HTTP API . FCP . WebSocket
                              |
                     +--------v--------+
                     |    Mail core    |
                     +--------+--------+
      +-----------+-----------+-----------+-----------+
      v           v           v           v           v
    SMTP        IMAP       Storage      Queue        DNS
      +-----------+-----------+-----------+-----------+
                              |
                      Event Bus -- Push
                              |
                         PostgreSQL
RFC 5321 · 3501 · 9051wesukilaye/ferroma:0.1.7

快速开始

一个容器、一个数据卷,没有 .env,也没有构建。数据库连接在浏览器里填。

services:
  ferroma:
    image: wesukilaye/ferroma:0.1.7
    container_name: ferroma
    restart: always
    # 直接绑定宿主的 25/587/143/8080,于是宿主上的 PostgreSQL 就是
    # 127.0.0.1。仅限 Linux。
    network_mode: host
    volumes:
      - ./data:/var/lib/ferroma
      - ./tls:/etc/ferroma/tls:ro
docker compose up -d
docker compose logs ferroma        # 读它打印出来的 setup code

# 然后打开 http://<host>:8080/,填入数据库地址和那个 code
i

一个地址走完两步。没有声明数据库的实例不会退出——它在 / 上要连接串和日志里的 setup code;验证通过后同一个进程继续启动,页面直接变成引导界面,在那里建第一个邮件域和管理员账号。前提是这台主机上已经有一个 PostgreSQL,Ferroma 只连接、不建库。完整说明(含纯 docker run 写法)见部署指南

文档

全部文档中英各一份,可整站搜索。