docker-compose部署iredmail并添加nginx反代

发布于 2021-12-07  127 次阅读


终于自己建邮箱了。

关于iredmail

iredmail算是比较有名的开源mail server了,作者好像还是个中国人。iredmail Github页面

其他选择其实也不少,比如Mail-in-a-Boxmodoboa之类,但是最大的问题在于几乎所有mail server都需要新系统,服务器上也不方便运行别的服务,前两年看的时候iredmail也是一样,而且iredmail的性能需求也不小,尝试部署过一次最后也只能放弃。

最近发现iredmail有了官方docker镜像,虽然还在beta阶段,不过对于我的需求来说,只要能部署起来,不少功能我倒也没有那么在意。

docker-compose部署

我的docker-compose.yml:

version: '3.7'

services:
  iredmail:
    image: iredmail/mariadb:stable
    hostname: mail.stsecurity.moe
    container_name: iredmail
    restart: unless-stopped
    volumes:
      - ./backup-mysql:/var/vmail/backup/mysql
      - ./mailboxes:/var/vmail/vmail1
      - ./mlmmj:/var/vmail/mlmmj
      - ./mlmmj-archive:/var/vmail/mlmmj-archive
      - ./imapsieve_copy:/var/vmail/imapsieve_copy
      - ./custom:/opt/iredmail/custom
      - ./ssl:/opt/iredmail/ssl
      - ./mysql:/var/lib/mysql
      - ./clamav:/var/lib/clamav
      - ./sa_rules:/var/lib/spamassassin
      - ./postfix_queue:/var/spool/postfix
    ports:
      - '127.0.0.1:3000:80'
      - '127.0.0.1:3001:443'
      - '110:110'
      - '995:995'
      - '143:143'
      - '993:993'
      - '25:25'
      - '465:465'
      - '587:587'
    environment:
      - HOSTNAME=mail.stsecurity.moe
      - FIRST_MAIL_DOMAIN=stsecurity.moe
      - FIRST_MAIL_DOMAIN_ADMIN_PASSWORD=xxxxxxxxxxxxx
      - MLMMJADMIN_API_TOKEN=xxxxxxxxxxxxxx
      - ROUNDCUBE_DES_KEY=xxxxxxxxxxxxxxx

基本上是官方提供的docker运行命令上修改得到的。因为要套反代,80和443端口就开到别的端口上去了。

Nginx反代

非常简单地把443端口转到对应的端口就可以,我什么header都没加,暂时用起来也没问题。80端口的话直接强制https,转发到80对应的端口会被跳转,有点问题。

配置iredmail

访问domain/iredadmin进入控制台,初次登陆用postmaster@FIRST_MAIL_DOMAIN加FIRST_MAIL_DOMAIN_ADMIN_PASSWORD登陆。

控制台可以添加域名和用户。

需要smtp只需要创建用户,然后用地址加密码发件即可。

直接访问域名是邮箱UI。


Sup