7

Docker安装Maddy Mail Server

 1 year ago
source link: https://vpsxb.net/4288/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Docker安装Maddy Mail Server

> 网络资源 > Docker安装Maddy Mail Server
202206191902179.png

最近需要用到smtp服务,想了下自建还是maddy最简单、方便。遂用docker搭建了一个,记录下过程。

以前我也写过一篇手动安装的文章,如有需要可以在本博客搜索下,这里就不多说了。

下面使用的是官方的image,但整个配置步骤与官方文档有一些出入,因为我个人觉得官方的方法略繁琐。

按官方文档走的话,容器不能一次性启动完成,第一次启动肯定是失败的,得等到你把tls证书加载好再重启一遍容器才行,个人觉得不太优雅。。另外官方用的是命名卷,备份起来没有直接挂载主机目录方便,所以我改了下配置。

安装docker:



  1. apt -y update
  2. apt -y install curl nginx python3-certbot-nginx
  3. curl -fsSL https://get.docker.com -o get-docker.sh
  4. sh get-docker.sh

新建docker-compose.yml:



  1. mkdir -p /opt/maddy && cd /opt/maddy && nano docker-compose.yml

写入如下配置:



  1. version: '3.7'
  2. services:
  3. maddy:
  4. image: foxcpp/maddy:0.6
  5. container_name: maddy
  6. restart: unless-stopped
  7. ports:
  8. - "25:25"
  9. - "143:143"
  10. - "465:465"
  11. - "587:587"
  12. - "993:993"
  13. volumes:
  14. - ./maddy-data:/data

创建maddy-data目录:



  1. mkdir maddy-data

然后在maddy-data目录里面下载一个maddy.conf配置文件:



  1. curl -L https://raw.githubusercontent.com/foxcpp/maddy/master/maddy.conf.docker -o maddy-data/maddy.conf

编辑maddy.conf:



  1. nano maddy-data/maddy.conf

里面有很多配置,但实际上没有多少需要改动的,只需要注意下面这些配置:



  1. $(hostname) = {env:MADDY_HOSTNAME}
  2. $(primary_domain) = {env:MADDY_DOMAIN}
  3. $(local_domains) = $(primary_domain)
  4. tls file /data/tls/fullchain.pem /data/tls/privkey.pem

将其修改为:



  1. $(hostname) = mx1.example.com
  2. $(primary_domain) = example.com
  3. $(local_domains) = $(primary_domain)
  4. tls file /data/fullchain.pem /data/privkey.pem

现在准备tls证书,在刚才安装docker的时候我们一并安装了nginx和certbot,所以下面就利用这两个软件来申请证书。

首先新建一个nginx配置文件:



  1. nano /etc/nginx/sites-available/maddy

写入如下配置:



  1. server {
  2. listen 80;
  3. server_name mx1.example.com;

启用新的配置:



  1. ln -s /etc/nginx/sites-available/maddy /etc/nginx/sites-enabled/maddy

签发证书:



  1. certbot --nginx

完成之后将证书和密钥复制到对应的路径:



  1. cp /etc/letsencrypt/live/mx1.example.com/fullchain.pem /opt/maddy/maddy-data/fullchain.pem
  2. cp /etc/letsencrypt/live/mx1.example.com/privkey.pem /opt/maddy/maddy-data/privkey.pem


  1. docker compose up -d

创建账号:



  1. docker exec -it maddy maddy creds create [email protected]
  2. docker exec -it maddy maddy imap-acct create [email protected]

简单说下为什么这么改容器也能正常运行,首先我看了下官方的Dockerfile:https://github.com/foxcpp/maddy/blob/master/Dockerfile

入口点是这样的:



  1. ENTRYPOINT ["/bin/maddy", "-config", "/data/maddy.conf"]

也就意味着,程序默认用/data/maddy.conf这个配置文件启动服务,那我直接在主机准备一个maddy.conf挂载进去不就可以了。

再加上官方提供的环境变量有限,还不如直接编辑配置文件方便。

这篇文章是我于2023年1月25日写的,但是一直放在草稿里面没有发布。。今天重新搭建测试了一遍,确定这样配置是没问题的,就发出来了:

202304122244203.png

https://lala.im/8586.html


VPS小白 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK