merge valdergallo PR with master
This commit is contained in:
commit
fc1b972104
|
@ -1,5 +1,5 @@
|
|||
FROM nginx
|
||||
MAINTAINER Elliot Saba <staticfloat@gmail.com>
|
||||
LABEL maintainer="Elliot Saba <staticfloat@gmail.com>, Valder Gallo <valergallo@gmail.com>"
|
||||
|
||||
VOLUME /etc/letsencrypt
|
||||
EXPOSE 80
|
||||
|
|
|
@ -14,26 +14,47 @@ auto_enable_configs
|
|||
nginx -g "daemon off;" &
|
||||
export NGINX_PID=$!
|
||||
|
||||
# Next, run certbot to request all the ssl certs we can find
|
||||
/scripts/run_certbot.sh
|
||||
|
||||
# Lastly, run startup scripts
|
||||
for f in /scripts/startup/*.sh; do
|
||||
if [[ -x "$f" ]]; then
|
||||
if [ -x "$f" ]; then
|
||||
echo "Running startup script $f"
|
||||
$f
|
||||
fi
|
||||
done
|
||||
echo "Done with startup"
|
||||
|
||||
last_sync_file="/etc/letsencrypt/last_sync.txt"
|
||||
|
||||
if [ ! -e "$last_sync_file" ]; then
|
||||
touch "$last_sync_file"
|
||||
|
||||
# run certbot to request all the ssl certs we can find
|
||||
echo "Run first time certbot"
|
||||
/scripts/run_certbot.sh
|
||||
fi
|
||||
|
||||
one_week_sec=604800
|
||||
|
||||
# Instead of trying to run `cron` or something like that, just leep and run `certbot`.
|
||||
while [ true ]; do
|
||||
# Sleep for 1 week
|
||||
sleep 604800 &
|
||||
sleep 604810 &
|
||||
SLEEP_PID=$!
|
||||
|
||||
last_sync_sec=$(stat -c %Y "$last_sync_file")
|
||||
now_sec=$(date -d now +%s)
|
||||
runned_sec=$(( ($now_sec - $last_sync_sec) ))
|
||||
is_finshed_week_sec=$(( ($one_week_sec - $runned_sec) ))
|
||||
|
||||
echo "Not run_certbot.sh"
|
||||
if [ $is_finshed_week_sec -lt 0 ]; then
|
||||
# recreate the file
|
||||
touch "$last_sync_file"
|
||||
|
||||
# re-run certbot
|
||||
echo "Run certbot"
|
||||
/scripts/run_certbot.sh
|
||||
fi
|
||||
|
||||
# Wait on sleep so that when we get ctrl-c'ed it kills everything due to our trap
|
||||
wait "$SLEEP_PID"
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
#!/bin/sh
|
||||
|
||||
PRODUCTION_URL='https://acme-v01.api.letsencrypt.org/directory'
|
||||
STAGING_URL='https://acme-staging.api.letsencrypt.org/directory'
|
||||
|
||||
if [ "${IS_STAGING}" = "1" ]; then
|
||||
letsencrypt_url=$STAGING_URL
|
||||
echo "Staging ..."
|
||||
else
|
||||
letsencrypt_url=$PRODUCTION_URL
|
||||
echo "Production ..."
|
||||
fi
|
||||
|
||||
echo "running certbot ... $letsencrypt_url $1 $2"
|
||||
certbot certonly --agree-tos --keep -n --text --email $2 --server \
|
||||
$letsencrypt_url -d $1 --http-01-port 1337 \
|
||||
--standalone --preferred-challenges http-01 --debug
|
|
@ -59,7 +59,19 @@ auto_enable_configs() {
|
|||
# EMAIL environment variable, to register the proper support email address.
|
||||
get_certificate() {
|
||||
echo "Getting certificate for domain $1 on behalf of user $2"
|
||||
PRODUCTION_URL='https://acme-v01.api.letsencrypt.org/directory'
|
||||
STAGING_URL='https://acme-staging.api.letsencrypt.org/directory'
|
||||
|
||||
if [ "${IS_STAGING}" = "1" ]; then
|
||||
letsencrypt_url=$STAGING_URL
|
||||
echo "Staging ..."
|
||||
else
|
||||
letsencrypt_url=$PRODUCTION_URL
|
||||
echo "Production ..."
|
||||
fi
|
||||
|
||||
echo "running certbot ... $letsencrypt_url $1 $2"
|
||||
certbot certonly --agree-tos --keep -n --text --email $2 --server \
|
||||
https://acme-v02.api.letsencrypt.org/directory -d $1 --http-01-port 1337 \
|
||||
--standalone --standalone-supported-challenges http-01 --debug
|
||||
$letsencrypt_url -d $1 --http-01-port 1337 \
|
||||
--standalone --preferred-challenges http-01 --debug
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue