NobGit
public nobgit read

NobMail

Based on mailcow: dockerized

Languages

Repository composition by tracked source files.

PHP
PHP 49% JavaScript 35% HTML 9% CSS 4% Shell 2% Python 1% Lua 0% Perl 0% Ruby 0% SCSS 0%
Create file Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git

Commit

[ACME, Compose] Add new image; fix AAAA check for MAILCOW_HOSTNAME

8adf3d27
AndrĂ© <[email protected]> 8 years ago
data/Dockerfiles/acme/docker-entrypoint.sh | 21 ++++++++++++++++-----
 docker-compose.yml                         |  2 +-
 2 files changed, 17 insertions(+), 6 deletions(-)

Diff

diff --git a/data/Dockerfiles/acme/docker-entrypoint.sh b/data/Dockerfiles/acme/docker-entrypoint.sh
index 2d619ee1..78fa4323 100755
--- a/data/Dockerfiles/acme/docker-entrypoint.sh
+++ b/data/Dockerfiles/acme/docker-entrypoint.sh
@@ -28,7 +28,7 @@ log_f "Waiting for Docker API..." no_nl
 until ping dockerapi -c1 > /dev/null; do
   sleep 1
 done
-log_f "Found Docker API" no_date
+log_f "OK" no_date
 
 ACME_BASE=/var/lib/acme
 SSL_EXAMPLE=/var/lib/ssl-example
@@ -135,6 +135,8 @@ log_f "Waiting for database... "
 while ! mysqladmin ping --host mysql -u${DBUSER} -p${DBPASS} --silent; do
   sleep 2
 done
+log_f "Initializing, please wait... "
+
 
 while true; do
   if [[ "${SKIP_IP_CHECK}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
@@ -214,16 +216,25 @@ while true; do
   done
 
   A_MAILCOW_HOSTNAME=$(dig A ${MAILCOW_HOSTNAME} +short | tail -n 1)
-  if [[ ! -z ${A_MAILCOW_HOSTNAME} ]]; then
+  AAAA_MAILCOW_HOSTNAME=$(dig AAAA ${MAILCOW_HOSTNAME} +short | tail -n 1)
+  if [[ ! -z ${AAAA_MAILCOW_HOSTNAME} ]]; then
+    log_f "Found AAAA record for ${MAILCOW_HOSTNAME}: ${AAAA_MAILCOW_HOSTNAME} - skipping A record check"
+    if [[ $(expand ${IPV6:-"0000:0000:0000:0000:0000:0000:0000:0000"}) == $(expand ${AAAA_MAILCOW_HOSTNAME}) ]] || [[ ${SKIP_IP_CHECK} == "y" ]]; then
+      log_f "Confirmed AAAA record ${MAILCOW_HOSTNAME}"
+      VALIDATED_MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME}
+    else
+      log_f "Cannot match your IP ${IPV6:-NO_IPV6_LINK} against hostname ${MAILCOW_HOSTNAME} ($(expand ${AAAA_MAILCOW_HOSTNAME}))"
+    fi
+  elif [[ ! -z ${A_MAILCOW_HOSTNAME} ]]; then
     log_f "Found A record for ${MAILCOW_HOSTNAME}: ${A_MAILCOW_HOSTNAME}"
     if [[ ${IPV4:-ERR} == ${A_MAILCOW_HOSTNAME} ]] || [[ ${SKIP_IP_CHECK} == "y" ]]; then
-      log_f "Confirmed A record ${MAILCOW_HOSTNAME}"
+      log_f "Confirmed A record ${A_MAILCOW_HOSTNAME}"
       VALIDATED_MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME}
     else
-      log_f "Cannot match your IP ${IPV4} against hostname ${MAILCOW_HOSTNAME} (${A_MAILCOW_HOSTNAME}) "
+      log_f "Cannot match your IP ${IPV4} against hostname ${MAILCOW_HOSTNAME} (${A_MAILCOW_HOSTNAME})"
     fi
   else
-    log_f "No A record for ${MAILCOW_HOSTNAME} found"
+    log_f "No A or AAAA record found for hostname ${MAILCOW_HOSTNAME}"
   fi
 
   for SAN in "${ADDITIONAL_SAN_ARR[@]}"; do
diff --git a/docker-compose.yml b/docker-compose.yml
index 5bcc1eea..991a974f 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -297,7 +297,7 @@ services:
       depends_on:
         - nginx-mailcow
         - mysql-mailcow
-      image: mailcow/acme:1.29
+      image: mailcow/acme:1.30
       build: ./data/Dockerfiles/acme
       sysctls:
         - net.ipv6.conf.all.disable_ipv6=${SYSCTL_IPV6_DISABLED:-0}