setup.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/bin/sh
  2. ROOT="$(git rev-parse --show-toplevel)"
  3. . $ROOT/docker/mail/mail.env
  4. cd "${0%/*}"
  5. if [ -z "${MAIL_SUBDOMAIN}" ]
  6. then
  7. domain="${MAIL_DOMAIN_ROOT}"
  8. else
  9. domain="${MAIL_SUBDOMAIN}.${MAIL_DOMAIN_ROOT}"
  10. fi
  11. PASSHASH="{SHA512-CRYPT}$(mkpasswd -m sha-512 -R 5000 ${MAIL_PASSWORD})"
  12. cat > mail.env <<EOF
  13. #!/bin/sh
  14. DOMAINNAME=${MAIL_DOMAIN_ROOT}
  15. MAILNAME=${domain}
  16. SSL_CERT=/etc/letsencrypt/live/${MAIL_DOMAIN_ROOT}/fullchain.pem
  17. SSL_KEY=/etc/letsencrypt/live/${MAIL_DOMAIN_ROOT}/privkey.pem
  18. MAIL_USER="${MAIL_USER}"
  19. USER="${MAIL_USER}@${MAIL_DOMAIN_ROOT}"
  20. EOF
  21. . $ROOT/docker/mail/mail.env
  22. # Config postfix
  23. sed -i -e "s#^\s*myhostname\s*=.*#myhostname = ${MAILNAME}#" config/postfix/main.cf
  24. sed -i -e "s#^\s*mydomain\s*=.*#mydomain = ${DOMAINNAME}#" config/postfix/main.cf
  25. sed -i -e "s#^\s*smtpd_tls_cert_file\s*=.*#smtpd_tls_cert_file = ${SSL_CERT}#" config/postfix/main.cf
  26. sed -i -e "s#^\s*smtpd_tls_key_file\s*=.*#smtpd_tls_key_file = ${SSL_KEY}#" config/postfix/main.cf
  27. # Config dovecot
  28. sed -i -e "s#^\s*ssl_cert\s*=.*#ssl_cert = <${SSL_CERT}#" config/dovecot/dovecot.conf
  29. sed -i -e "s#^\s*ssl_key\s*=.*#ssl_key = <${SSL_KEY}#" config/dovecot/dovecot.conf
  30. sed -i -e "s#^\s*postmaster_address\s*=.*#postmaster_address = postmaster@${DOMAINNAME}#" config/dovecot/dovecot.conf
  31. # Config dkim
  32. sed -i -e "s/^.*#HOSTNAME/${MAILNAME}#HOSTNAME/" config/opendkim/TrustedHosts
  33. # Prepare mail user
  34. touch config/aliases config/domains config/mailboxes config/passwd
  35. echo "${DOMAINNAME} #OK" > config/domains
  36. echo "${USER} ${USER}" > config/aliases
  37. echo "${USER} ${DOMAINNAME}/${MAIL_USER}/" > config/mailboxes
  38. echo "${USER}:${PASSHASH}" > config/passwd