
stalwartlabs/stalwartStalwart是一款开源邮件与协作服务器,支持JMAP、IMAP4、POP3、SMTP、CalDAV、CardDAV和WebDAV协议,具备丰富的现代功能。它采用Rust编写,设计目标是安全、快速、健壮且可扩展。
适用于需要自建邮件服务器和协作服务的个人、企业或组织,尤其适合对安全性、性能和可扩展性有较高要求的场景。
首先拉取最新版Stalwart镜像:
bash$ docker pull stalwartlabs/stalwart:latest
在主机上创建用于存储配置文件和数据的目录:
bash$ mkdir /var/lib/stalwart
完成初始设置后,启动Stalwart容器:
bash$ docker run -d -ti -p 443:443 -p 8080:8080 \ -p 25:25 -p 587:587 -p 465:465 \ -p 143:143 -p 993:993 -p 4190:4190 \ -p 110:110 -p 995:995 \ -v <STALWART_DIR>:/opt/stalwart \ --name stalwart stalwartlabs/stalwart:latest
请将<STALWART_DIR>替换为您创建的目录路径(如/var/lib/stalwart)。注意无需暴露所有端口,详情请阅读服务器安全配置文档。
执行docker logs stalwart获取管理员账户和密码:
bash$ docker logs stalwart ✅ Configuration file written to /opt/stalwart/etc/config.toml 🔑 Your administrator account is 'admin' with password 'w95Yuiu36E'.
使用获取到的凭据登录Web界面:[***]
登录后,进入设置 > 存储部分,配置数据存储、 blob存储、全文检索存储和内存存储。有关可用选项的详细信息,请阅读选择数据库部分。
如需使用外部认证目录(如LDAP或SQL),请进入设置 > 认证部分配置认证后端。
提示:Stalwart默认预配置RocksDB作为所有存储的后端,如无特殊需求,可跳过此步骤。
进入设置 > 服务器 > 网络确认服务器主机名正确,然后在管理 > 目录 > 域名中添加主域名。创建域名后,界面将显示需添加到DNS设置的记录,例如:
txtMX example.org. 10 mail.example.org. TXT 202404e._domainkey.example.org. v=DKIM1; k=ed25519; h=sha256; p=MCowBQYDK2VwAyEAOT2JN9F8SLTVFNEODDu22SD9RJDC282mugCAeXkzjH0= TXT 202404r._domainkey.example.org. v=DKIM1; k=rsa; h=sha256; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAykeYJjv5N0AlnJ8gKF+/8qjbStiMFWvPg+p3JPh96GPXEN6l9W/Ee6Lag6i3vLyTVH5dnRVRBhfWhc+Dc0nKreZe4f5i4L5M4RI31+RpEgu4bCmncUIk2WzJgGBW5XbiOwXjge6OKWtJQN9d8Lc1AuryL5xeged9iS6xd/+EJz4WxAf18U+j38xmAm8fJUTBnQVeb/AZup+voSKAS59jyumsb0jQtXfX5xnwTFXdiX2OF8LRrmmNs/ObHozgHftxAv+YCiSU4bqSlKNPQIrN5kk1YnZDnLlc1Gr66AWlmdUVE7PWtZPTy4f8+uHO93EW3WUxLmynZm+Syn9FTJC2uwIDAQAB TXT mail.example.org. v=spf1 a -all ra=postmaster TXT example.org. v=spf1 mx -all ra=postmaster TXT _dmarc.example.org. v=DMARC1; p=reject; rua=mailto:***; ruf=mailto:***
提示:部分自动生成的记录可能根据您的设置为可选,详情请阅读DNS设置部分。
Stalwart需要有效的TLS证书来保护服务器与客户端之间的连接,可通过以下方式启用:
设置 > 服务器 > TLS > 证书部分上传您的TLS证书。设置 > 服务器 > TLS > ACME提供商,添加Let's Encrypt作为ACME提供商,并确保服务器主机名列为主题名称之一。Stalwart支持tls-alpn-01、dns-01和http-01挑战,详情请阅读ACME挑战类型文档。完成配置后,重启容器使设置生效:
bash$ docker restart stalwart
管理 > 目录 > 账户部分添加用户;若使用外部目录,需在目录服务器中创建用户。<安装目录>/logs下的日志文件检查错误。提示:在将服务器公开访问前,请务必阅读服务器安全配置部分。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务