mccs

功能

mccs 能为你的用户做什么

一个不含任何 npm 依赖的 Node 22 进程,运行在一个只读容器中,以非 root 用户身份运行。

向导

  • 引导式

    地址、设备、应用,然后是带可复制数值的分步指南。

  • 指南

    Outlook(新版和经典版)、CalDAV Synchronizer、Thunderbird、Apple Mail、Gmail、Samsung 应用和 DAVx5。

  • Apple 描述文件和自动配置

    一键安装的 Apple 配置描述文件(.mobileconfig,不含密码)和 Thunderbird 自动配置。

  • 二维码

    在电脑上,二维码可让客户在手机上继续操作。二维码在浏览器中本地生成。

你的品牌和你的服务器

一切都来自环境变量。代码中不含任何与你的实例有关的内容。

  • 白标

    名称、标志、强调色、服务器和支持联系方式。

  • 预设

    mdaemon(默认,使用 MDaemon 的 WebDAV 路径和共享文件夹)或 generic(标准 .well-known 发现),两者都可以用 URL 模板覆盖。

  • 支持页面

    内部 /support 页面(HTTP Basic),为单个客户生成链接,附二维码、PNG 或 SVG 导出,以及现成的电子邮件或短信文本。

无密码

  • 不存储任何内容

    它从不索要密码,不存储任何内容,也不设置 cookie。用户只在自己的邮件客户端中输入密码。

  • 无需备份

    磁盘上不存储任何内容,所以除了 .env 外无需备份。

  • 已加固

    严格的 Content-Security-Policy、只读文件系统、移除所有 capabilities,且没有第三方请求。

它不做什么

  • 其他语言

    界面和指南均为法语。翻译需要手动编辑 public/js/guides.js、public/js/app.js 和 HTML 文件。

  • 为 Apple 描述文件签名

    该描述文件未签名。安装时 iOS 和 macOS 会显示“未签名”,服务器也不会替你签名。

  • 发布镜像

    没有发布镜像,也没有自动化测试和 CI。Docker 从仓库构建。

  • 覆盖所有邮件服务器

    指南是为一个 MDaemon 实例编写的,generic 预设的使用经验较少。

  • 检查你的服务器

    它不会检查你的邮件服务器是否有响应。设置是否正确,取决于你的配置。

  • 自动保持最新

    指南描述的是第三方应用目前的样子。Outlook 或 Thunderbird 的新版本可能让某些步骤过时。

  • 信任任意代理

    当存在 CF-Connecting-IP 头时,/support 的锁定机制以它为依据,因此只能把应用放在由你控制该头的代理之后。

运行 mccs

打开 http://localhost:8080,用你域名下的地址试用向导。详情见文档。

$ git clone https://github.com/selfhostr/mccs.git && cd mccs
$ cp .env.example .env  # set MAIL_HOST, PUBLIC_URL, BRAND_NAME
$ docker compose up -d --build