首页服务器教程手把手教你用Docker部署Stalwart邮件服务器

手把手教你用Docker部署Stalwart邮件服务器

2025-12-01 35

Stalwart是基于Rust语言编写的高性能邮件服务器,完全开源,遵循AGPL v3许可证,提供了电子邮件传输到垃圾邮件过滤的所有关键环节。本文主要教大家在FlyWP面板上基于Docker部署Stalwart邮件服务器,就算不懂Docker Compose也可以轻松搭建。

不管是Stalwart、Ollama、Umami还是PocketBase,只要是Docker化的应用,部署流程都一样。我们会从自带干净的Nginx容器的HTML站点模板开始,自动配好了Let’sEncrypt SSL证书,省了不少麻烦。

一、注册/登录FlyWP

FlyWP官网地址:点击直达

通过输入电子邮件和密码帐户注册或者登录FlyWP。

手把手教你用Docker部署Stalwart邮件服务器

二、在FlyWP里创建静态站点

1、登录FlyWP后台,进入你想用的服务器;

手把手教你用Docker部署Stalwart邮件服务器

2、点击“创建新站点”,选择“HTML”模板;

3、可以用FlyWP免费子域名,也可以填自己的域名;

4、要是用测试域名,随便起个名字(比如“stalwart-mail”);

5、点击“创建站点”。

手把手教你用Docker部署Stalwart邮件服务器

FlyWP会自动启动Nginx容器、申请有效SSL证书,生成一个可用的站点,这就是我们的基础环境。

手把手教你用Docker部署Stalwart邮件服务器

三、通过SSH连接服务器

打开终端,用FlyWP站点概览里显示的SSH命令连接服务器:

ssh fly@your-server-ip

进入新创建的站点文件夹(把下面的示例域名换成你自己的,后台能看到):

cd ~/local-stalwart-xprxqy.flywp.xyz

停止正在运行的容器,避免编辑文件时出问题:

docker compose down

四、创建Stalwart的数据存储文件夹

Stalwart需要存邮件、配置和数据库,需要先建个文件夹:

mkdir -p data/stalwart

五、添加Stalwart服务

用nano或vim打开docker-compose.yml文件:

nano docker-compose.yml

原有的nginx服务完全别动,滑到文件底部,添加stalwart服务,最终内容如下:

services:
nginx:
image: ‘nginxinc/nginx-unprivileged:alpine’
restart: always
environment:
– VIRTUAL_HOST=local-stalwart-xprxqy.flywp.xyz
– VIRTUAL_PORT=8080
– CERT_NAME=132/server
– HTTPS_METHOD=redirect
user: ‘1000:1000’
volumes:
– ‘./app:/var/www/html’
– ‘./logs/nginx:/var/log/nginx’
– ‘./data/nginx/temp:/var/cache/nginx’
– ‘./data/nginx/cache:/var/run/nginx-cache’
– ‘./config/nginx/common:/etc/nginx/common’
– ‘./config/nginx/custom:/etc/nginx/custom’
– ‘./config/nginx/default.conf:/etc/nginx/conf.d/default.conf’
– ‘/home/fly/.fly/nginx/html:/usr/share/nginx/html’
networks:
– site-network
– wordpress-sites

stalwart:
image: stalwartlabs/stalwart:latest
container_name: stalwart
restart: always
ports:
– “25:25” # SMTP
– “587:587” # Submission (STARTTLS)
– “465:465” # SMTPS
– “993:993” # IMAPS
– “143:143” # IMAP
– “4190:4190” # Sieve (ManageSieve)
volumes:
– ./data/stalwart:/opt/stalwart
networks:
– site-network

networks:
site-network:
name: local-stalwart-xprxqy.flywp.xyz
wordpress-sites:
name: wordpress-sites
external: true

保存退出(nano里按Ctrl+O→回车→Ctrl+X)。

六、请求转发给Stalwart

Stalwart的Web管理界面跑在容器内的8080端口,我们要让Nginx把所有网页请求都转过去:
打开Nginx配置文件:

nano config/nginx/default.conf

把内容全替换成下面的,注意把server_name改成你的站点名:

# FLYWP CONFIG (DON’T REMOVE)
include custom/before/*.conf;

upstream stalwart_http {
server stalwart:8080;
}

server {
listen 8080;
listen [::]:8080;
server_name local-stalwart-xprxqy.flywp.xyz;

absolute_redirect off;

error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;

location / {
proxy_pass http://stalwart_http;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

# FLYWP CONFIG (DON’T REMOVE)
include custom/server/*.conf;
}

# FLYWP CONFIG (DON’T REMOVE)
include custom/after/*.conf;

保存退出。

七、获取管理员密码

启动所有容器:

docker compose up -d

等几秒后,查看Stalwart日志,找到管理员密码:

docker compose logs stalwart

你会看到类似这样的内容:

stalwart | ✅ Configuration file written to /opt/stalwart/etc/config.toml
stalwart | 🔑 Your administrator account is ‘admin’ with password ‘w95Yuiu36E’.

把这个密码记下来!

八、登录后台

打开浏览器访问你的站点,就能进入Stalwart的Web管理界面;

登录信息:

  • 用户名:admin
  • 密码:刚才日志里的密码

先把密码改成自己的,然后配置域名、创建邮箱账户,这样你就有了一个完整的邮件服务器,支持JMAP、IMAP、SMTP、网页邮箱和反垃圾邮件功能,还自带FlyWP的自动SSL和备份。

相关推荐:

Mailu邮件服务器搭建超全指南

高互动率的外贸邮件营销创建指南

Amazon SES免费企业邮箱注册教程

  • 广告合作

  • QQ群号:4114653

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。
Docker部署Stalwart邮件服务器
下一篇:

已经没有下一篇了!

相关文章