Skip to content
Snippets Groups Projects
Commit 18724cb7 authored by Pierre Ozoux's avatar Pierre Ozoux
Browse files

Merge branch 'dkim'

parents b5db839b 745e44fe
No related branches found
No related tags found
No related merge requests found
...@@ -6,7 +6,10 @@ RUN apt-get update && \ ...@@ -6,7 +6,10 @@ RUN apt-get update && \
postfix-pcre \ postfix-pcre \
postfix-mysql \ postfix-mysql \
supervisor \ supervisor \
ca-certificates && \ ca-certificates \
opendkim \
opendkim-tools \
opendmarc && \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
COPY install.sh /install.sh COPY install.sh /install.sh
...@@ -14,6 +17,7 @@ COPY postfix_outgoing_mail_header_filters /etc/postfix/outgoing_mail_header_filt ...@@ -14,6 +17,7 @@ COPY postfix_outgoing_mail_header_filters /etc/postfix/outgoing_mail_header_filt
COPY virtual-mailbox-domains.cf /etc/postfix/virtual-mailbox-domains.cf COPY virtual-mailbox-domains.cf /etc/postfix/virtual-mailbox-domains.cf
COPY virtual-mailbox-maps.cf /etc/postfix/virtual-mailbox-maps.cf COPY virtual-mailbox-maps.cf /etc/postfix/virtual-mailbox-maps.cf
COPY virtual-alias-maps.cf /etc/postfix/virtual-alias-maps.cf COPY virtual-alias-maps.cf /etc/postfix/virtual-alias-maps.cf
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
RUN \ RUN \
chmod u+x /install.sh && \ chmod u+x /install.sh && \
...@@ -23,7 +27,7 @@ RUN \ ...@@ -23,7 +27,7 @@ RUN \
smtpd_banner="\$myhostname ESMTP Hi, I'm a hosted by an IndieHoster (Debian/Postfix; see https://indiehosters.net/)" \ smtpd_banner="\$myhostname ESMTP Hi, I'm a hosted by an IndieHoster (Debian/Postfix; see https://indiehosters.net/)" \
mydestination=localhost && \ mydestination=localhost && \
/opt/editconf.py /etc/postfix/master.cf -s -w \ /opt/editconf.py /etc/postfix/master.cf -s -w \
"submission=inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_ciphers=high -o smtpd_tls_protocols=!SSLv2,!SSLv3 -o cleanup_service_name=authclean" && \ "submission=inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_milters=inet:127.0.0.1:8891 -o smtpd_tls_ciphers=high -o smtpd_tls_protocols=!SSLv2,!SSLv3 -o cleanup_service_name=authclean" && \
/opt/editconf.py /etc/postfix/master.cf -s -w \ /opt/editconf.py /etc/postfix/master.cf -s -w \
"authclean=unix n - - - 0 cleanup -o header_checks=pcre:/etc/postfix/outgoing_mail_header_filters" && \ "authclean=unix n - - - 0 cleanup -o header_checks=pcre:/etc/postfix/outgoing_mail_header_filters" && \
/opt/editconf.py /etc/postfix/main.cf \ /opt/editconf.py /etc/postfix/main.cf \
...@@ -55,7 +59,21 @@ RUN \ ...@@ -55,7 +59,21 @@ RUN \
virtual_alias_maps=mysql:/etc/postfix/virtual-alias-maps.cf \ virtual_alias_maps=mysql:/etc/postfix/virtual-alias-maps.cf \
local_recipient_maps=\$virtual_mailbox_maps && \ local_recipient_maps=\$virtual_mailbox_maps && \
/opt/editconf.py /etc/postfix/main.cf \ /opt/editconf.py /etc/postfix/main.cf \
mynetworks="127.0.0.0/8 172.17.42.0/24" mynetworks="127.0.0.0/8 172.17.42.0/24" && \
/opt/editconf.py /etc/opendmarc.conf -s \
"Syslog=true" \
"Socket=inet:8893@[127.0.0.1]" && \
/opt/editconf.py /etc/postfix/main.cf \
"smtpd_milters=inet:127.0.0.1:8891 inet:127.0.0.1:8893"\
non_smtpd_milters=\$smtpd_milters \
milter_default_action=accept && \
echo "MinimumKeyBits 1024" >> /etc/opendkim && \
echo "ExternalIgnoreList refile:/etc/opendkim/TrustedHosts" >> /etc/opendkim && \
echo "InternalHosts refile:/etc/opendkim/TrustedHosts" >> /etc/opendkim && \
echo "KeyTable refile:/etc/opendkim/KeyTable" >> /etc/opendkim && \
echo "SigningTable refile:/etc/opendkim/SigningTable" >> /etc/opendkim && \
echo "Socket inet:8891@localhost" >> /etc/opendkim && \
echo "RequireSafeKeys false" >> /etc/opendkim
#RUN /opt/editconf.py /etc/postfix/main.cf \ #RUN /opt/editconf.py /etc/postfix/main.cf \
#smtp_tls_security_level=dane \ #smtp_tls_security_level=dane \
......
...@@ -16,18 +16,10 @@ sed -i "s/##HOSTNAME##/$HOSTNAME/" /etc/postfix/main.cf ...@@ -16,18 +16,10 @@ sed -i "s/##HOSTNAME##/$HOSTNAME/" /etc/postfix/main.cf
/opt/mysql-check.sh /opt/mysql-check.sh
chown -R postfix:postfix /var/spool/postfix/dovecot if [ ! -f /etc/opendkim/TrustedHosts ]; then
mkdir -p /etc/opendkim
#supervisor echo "127.0.0.1" > /etc/opendkim/TrustedHosts
cat > /etc/supervisor/conf.d/supervisord.conf <<EOF fi
[supervisord]
nodaemon=true
[program:postfix] chown -R postfix:postfix /var/spool/postfix/dovecot
process_name = master
command = /etc/init.d/postfix start
startsecs = 0
autorestart = false
EOF
[supervisord]
nodaemon=true
[program:postfix]
process_name = postfix
command = /etc/init.d/postfix start
startsecs = 0
autorestart = false
[program:opendkim]
process_name = opendkim
command = /etc/init.d/opendkim start
startsecs = 0
autorestart = false
[program:opendmarc]
process_name = opendmarc
command = /etc/init.d/opendmarc start
startsecs = 0
autorestart = false
...@@ -9,7 +9,7 @@ docker run\ ...@@ -9,7 +9,7 @@ docker run\
-v /haproxy-config:/etc/haproxy\ -v /haproxy-config:/etc/haproxy\
-p 80:80\ -p 80:80\
-p 443:443\ -p 443:443\
pierreozoux/haproxy indiepaas/haproxy
``` ```
Have a look to [pierreozoux/confd](https://registry.hub.docker.com/u/pierreozoux/confd/) to have automatic configuration of HAproxy backed by `etcd` or `consul`. Have a look to [indiepaas/confd](https://registry.hub.docker.com/u/indiepaas/confd/) to have automatic configuration of HAproxy backed by `etcd` or `consul`.
...@@ -19,7 +19,7 @@ docker pull ibuildthecloud/systemd-docker ...@@ -19,7 +19,7 @@ docker pull ibuildthecloud/systemd-docker
# Create Directory structure # Create Directory structure
mkdir -p /data/domains mkdir -p /data/domains
mkdir -p /data/runtime/haproxy/approved-certs mkdir -p /data/runtime/haproxy/approved-certs
git clone https://github.com/pierreozoux/IndiePaaS.git /data/indiehosters git clone https://github.com/indiepaas/IndiePaaS.git /data/indiehosters
# Install unit-files # Install unit-files
cp /data/indiehosters/unit-files/* /etc/systemd/system && systemctl daemon-reload cp /data/indiehosters/unit-files/* /etc/systemd/system && systemctl daemon-reload
......
...@@ -24,6 +24,7 @@ ExecStart=/usr/bin/docker run \ ...@@ -24,6 +24,7 @@ ExecStart=/usr/bin/docker run \
-v /data/runtime/postfix:/data \ -v /data/runtime/postfix:/data \
-v /data/runtime/mail:/var/mail \ -v /data/runtime/mail:/var/mail \
-v /data/domains/mail/TLS:/ssl \ -v /data/domains/mail/TLS:/ssl \
-v /data/domains/mail/opendkim:/etc/opendkim \
--volumes-from=dovecot \ --volumes-from=dovecot \
-p 25:25 \ -p 25:25 \
-p 587:587 \ -p 587:587 \
......
#!/bin/bash -ex #!/bin/bash -ex
DOMAIN=$1 EMAIL=$1
PASSWORD=`echo $RANDOM date | md5sum | base64 | cut -c-10` PASSWORD=`echo $RANDOM date | md5sum | base64 | cut -c-10`
MYSQL_PASS=`cat /data/domains/mail/mysql/.env | cut -d= -f2` MYSQL_PASS=`cat /data/domains/mail/mysql/.env | cut -d= -f2`
DOMAIN=$(echo ${EMAIL} | cut -f2 -d@)
/usr/bin/docker run \ /usr/bin/docker run \
--rm \ --rm \
--name add_email_support_to_$DOMAIN \ --name add_email_support_to_$DOMAIN \
--link mysql-mail:db \ --link mysql-mail:db \
pierreozoux/mysql \ indiepaas/mysql \
mysql \ mysql \
-uadmin \ -uadmin \
-p$MYSQL_PASS \ -p$MYSQL_PASS \
-h db \ -h db \
-e "INSERT INTO servermail.virtual_domains (name) VALUES ('$DOMAIN');" \
-e "INSERT INTO servermail.virtual_users (domain_id, password , email) \ -e "INSERT INTO servermail.virtual_users (domain_id, password , email) \
VALUES( \ VALUES( \
(SELECT id FROM servermail.virtual_domains WHERE name='$DOMAIN'), \ (SELECT id FROM servermail.virtual_domains WHERE name='$DOMAIN'), \
ENCRYPT('$PASSWORD', CONCAT('\$6\$', SUBSTRING(SHA(RAND()), -16))), \ ENCRYPT('$PASSWORD', CONCAT('\$6\$', SUBSTRING(SHA(RAND()), -16))), \
'contact@$DOMAIN');" '$EMAIL');"
echo "Email added with success"
echo "Pass: $PASSWORD"
...@@ -9,7 +9,7 @@ MYSQL_PASS=`cat /data/domains/mail/mysql/.env | cut -d= -f2` ...@@ -9,7 +9,7 @@ MYSQL_PASS=`cat /data/domains/mail/mysql/.env | cut -d= -f2`
--rm \ --rm \
--name add_email_support_to_$DOMAIN \ --name add_email_support_to_$DOMAIN \
--link mysql-mail:db \ --link mysql-mail:db \
pierreozoux/mysql \ indiepaas/mysql \
mysql \ mysql \
-uadmin \ -uadmin \
-p$MYSQL_PASS \ -p$MYSQL_PASS \
......
#!/bin/bash -ex
DOMAIN=$1
MYSQL_PASS=`cat /data/domains/mail/mysql/.env | cut -d= -f2`
/usr/bin/docker run \
--rm \
--name add_email_support_to_$DOMAIN \
--link mysql-mail:db \
indiepaas/mysql \
mysql \
-uadmin \
-p$MYSQL_PASS \
-h db \
-e "INSERT INTO servermail.virtual_domains (name) VALUES ('$DOMAIN');"
mkdir -p /data/domains/mail/opendkim/keys/$DOMAIN
/usr/bin/docker run \
--rm \
--name opendkim-genkey \
indiepaas/postfix \
/usr/bin/opendkim-genkey -D /etc/opendkim/keys/$DOMAIN/ -d $DOMAIN -s mail && chown -R opendkim: /etc/opendkim/keys
mv /data/domains/mail/opendkim/keys/$DOMAIN/mail.private /data/domains/mail/opendkim/keys/$DOMAIN/mail
echo mail._domainkey.$DOMAIN $DOMAIN:mail:/etc/opendkim/keys/$DOMAIN/mail >> /data/domains/mail/opendkim/KeyTable
echo *@$DOMAIN mail._domainkey.$DOMAIN >> /data/domains/mail/opendkim/SigningTable
echo $DOMAIN >> /data/domains/mail/opendkim/TrustedHosts
echo galaxy.$DOMAIN >> /data/domains/mail/opendkim/TrustedHosts
echo "Domain installed with success."
echo "Please add the followig records to it's DNS."
cat /data/domains/mail/opendkim/keys/$DOMAIN/mail.txt
echo "And don't forget spf :)"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment