Stalwart是基于Rust语言编写的高性能邮件服务器,完全开源,遵循AGPL v3许可证,提供了电子邮件传输到垃圾邮件过滤的所有关键环节。本文主要教大家在FlyWP面板上基于Docker部署Stalwart邮件服务器,就算不懂Docker Compose也可以轻松搭建。
不管是Stalwart、Ollama、Umami还是PocketBase,只要是Docker化的应用,部署流程都一样。我们会从自带干净的Nginx容器的HTML站点模板开始,自动配好了Let’sEncrypt SSL证书,省了不少麻烦。
一、注册/登录FlyWP
FlyWP官网地址:点击直达
通过输入电子邮件和密码帐户注册或者登录FlyWP。
二、在FlyWP里创建静态站点
1、登录FlyWP后台,进入你想用的服务器;
2、点击“创建新站点”,选择“HTML”模板;
3、可以用FlyWP免费子域名,也可以填自己的域名;
4、要是用测试域名,随便起个名字(比如“stalwart-mail”);
5、点击“创建站点”。
FlyWP会自动启动Nginx容器、申请有效SSL证书,生成一个可用的站点,这就是我们的基础环境。
三、通过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-sitesstalwart:
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-networknetworks:
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和备份。
相关推荐:
-
广告合作
-
QQ群号:4114653







