iRedmail | CONTAINERISATION & ORCHESTRATION


Create a docker environment file used to store custom settings:

mkdir /iredmail # Create a new directory or use any directory
 # you prefer. `/iredmail/` is just an example
cd /iredmail
touch iredmail-docker.conf

echo HOSTNAME=mail.layer3.co.za >> iredmail-docker.conf
echo FIRST_MAIL_DOMAIN=layer3.co.za >> iredmail-docker.conf
echo FIRST_MAIL_DOMAIN_ADMIN_PASSWORD=MyP455w0rd >> iredmail-docker.conf
echo MLMMJADMIN_API_TOKEN=$(openssl rand -base64 32) >> iredmail-docker.conf
echo ROUNDCUBE_DES_KEY=$(openssl rand -base64 24) >> iredmail-docker.conf
echo MYSQL_ROOT_PASSWORD=Pr0t3ctMYSQLdb >> iredmail-docker.conf

Create required directories to store application data:

cd /iredmail
mkdir -p data/{backup-mysql,clamav,custom,imapsieve_copy,mailboxes,mlmmj,mlmmj-archive,mysql,sa_rules,ssl,postfix_queue}

Launch the container:

docker run \
 --rm \
 --name iredmail \
 --env-file iredmail-docker.conf \
 --hostname mail.layer3.co.za \
 -p 80:80 \
 -p 443:443 \
 -p 110:110 \
 -p 995:995 \
 -p 143:143 \
 -p 993:993 \
 -p 25:25 \
 -p 465:465 \
 -p 587:587 \
 -v /iredmail/data/backup-mysql:/var/vmail/backup/mysql \
 -v /iredmail/data/mailboxes:/var/vmail/vmail1 \
 -v /iredmail/data/mlmmj:/var/vmail/mlmmj \
 -v /iredmail/data/mlmmj-archive:/var/vmail/mlmmj-archive \
 -v /iredmail/data/imapsieve_copy:/var/vmail/imapsieve_copy \
 -v /iredmail/data/custom:/opt/iredmail/custom \
 -v /iredmail/data/ssl:/opt/iredmail/ssl \
 -v /iredmail/data/mysql:/var/lib/mysql \
 -v /iredmail/data/clamav:/var/lib/clamav \
 -v /iredmail/data/sa_rules:/var/lib/spamassassin \
 -v /iredmail/data/postfix_queue:/var/spool/postfix \
 iredmail/mariadb:stable

Notes:

  • On first run, it will generate a self-signed ssl cert, this may take a long time, please be patient.

  • FIRST_MAIL_DOMAIN_ADMIN_PASSWORD is only set/reset on first run, not each run.

  • All SQL passwords are randomly set/reset by default each time you launch or relaunch the container. If you don't like this, please set fixed passwords in iredmail-docker.conf, e.g. MYSQL_ROOT_PASSWORD=<your-password>.

DKIM key was generated during the installation process, now let’s see which public keys are present:

#From Docker Host >> Get container ID using 'docker ps'
aabbccdd
#From Docker Host >> We will use " docker exec" to access the iredmail container
sudo docker exec -it aabbccdd /bin/bash
amavisd-new showkeys
amavisd-new -c /etc/amavis/conf.d/50-user showkeys
root@mail:/# amavisd-new showkeys
; key#1 1024 bits, i=dkim, d=layer3.co.za, /opt/iredmail/custom/amavisd/dkim/layer3.co.za.pem
dkim._domainkey.layer3.co.za. 3600 TXT (
 "v=DKIM1; p="
 "AAAAA"
 "BBBBB"
 "CCCCC"
 "DDDDD")

root@mail:/# 

On your DNS servers, create 2 "TXT" files for your domain and mail servers:

dkim.domainkey TXT v=DKIM1; p=AAAAABBBBBCCCCCDDDDD; dkim.domainkey.mail TXT v=DKIM1; p=AAAAABBBBBCCCCCDDDDD;

amavisd-new testkeys


hunterzuo 2024年11月16日 18:29 收藏文档