diff --git a/assets/etc/crontabs/root b/assets/etc/crontabs/root index 4c6f3b0..ed189af 100644 --- a/assets/etc/crontabs/root +++ b/assets/etc/crontabs/root @@ -6,4 +6,3 @@ 0 3 * * 6 run-parts /etc/periodic/weekly 0 5 1 * * run-parts /etc/periodic/monthly * * * * * /scripts/haproxy-reload.sh -*/2 * * * * /scripts/certbot.sh diff --git a/assets/scripts/certbot.sh b/assets/scripts/certbot.sh index d06d298..e8432ea 100755 --- a/assets/scripts/certbot.sh +++ b/assets/scripts/certbot.sh @@ -1,5 +1,12 @@ #!/usr/bin/env bash +# Semaphore +if [ -f /tmp/certbot-lock ]; then + exit 0 +fi + +touch /tmp/certbot-lock + mkdir -p /var/log/letsencrypt ln -sf /dev/stdout /var/log/letsencrypt/letsencrypt.log @@ -33,4 +40,6 @@ fi if [ -n "$RENEW_CERTS" ]; then certbot renew --post-hook "/scripts/certbot_to_haproxy.sh" -fi \ No newline at end of file +fi + +rm /tmp/certbot-lock \ No newline at end of file diff --git a/assets/scripts/certbot_to_haproxy.sh b/assets/scripts/certbot_to_haproxy.sh index d2ea126..f3735da 100755 --- a/assets/scripts/certbot_to_haproxy.sh +++ b/assets/scripts/certbot_to_haproxy.sh @@ -8,5 +8,4 @@ for CERTIFICATE in `find /etc/letsencrypt/live/* -type d`; do cat /etc/letsencrypt/live/$CERTIFICATE/fullchain.pem /etc/letsencrypt/live/$CERTIFICATE/privkey.pem > /etc/haproxy/certs/$CERTIFICATE.pem done -echo "Reloading certificates... " -/usr/sbin/haproxy -W -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -x /var/run/haproxy.sock -sf $(cat /run/haproxy.pid) & +touch /tmp/force-reload \ No newline at end of file diff --git a/assets/scripts/haproxy-reload.sh b/assets/scripts/haproxy-reload.sh index 55e7e27..61bdba6 100755 --- a/assets/scripts/haproxy-reload.sh +++ b/assets/scripts/haproxy-reload.sh @@ -47,6 +47,14 @@ if [[ ! -z "$1" ]]; then RELOAD="false" fi +/scripts/certbot.sh + +# If Certbot reloads successfully will create the file /tmp/force-reload +if [ -f /tmp/force-reload ]; then + RELOAD="true" + rm /tmp/force-reload +fi + if [[ "$RELOAD" == "true" ]]; then echo "Reloading..." /usr/sbin/haproxy -W -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -x /var/run/haproxy.sock -sf $(cat /run/haproxy.pid) &