forked from zovos/bot_tg
47 lines
1 KiB
Bash
47 lines
1 KiB
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
APP_DOMAIN="${APP_DOMAIN:-}"
|
|
APP_WWW_DOMAIN="${APP_WWW_DOMAIN:-}"
|
|
ACME_EMAIL="${ACME_EMAIL:-}"
|
|
CERTBOT_STAGING="${CERTBOT_STAGING:-0}"
|
|
CERTBOT_RENEW_INTERVAL="${CERTBOT_RENEW_INTERVAL:-12h}"
|
|
|
|
if [ -z "$APP_DOMAIN" ] || [ -z "$ACME_EMAIL" ]; then
|
|
echo "Skipping certbot: APP_DOMAIN or ACME_EMAIL is empty."
|
|
exit 0
|
|
fi
|
|
|
|
(
|
|
sleep 20
|
|
|
|
if [ ! -f "/etc/letsencrypt/renewal/$APP_DOMAIN.conf" ]; then
|
|
rm -rf "/etc/letsencrypt/live/$APP_DOMAIN" "/etc/letsencrypt/archive/$APP_DOMAIN"
|
|
fi
|
|
|
|
while :; do
|
|
DOMAINS="-d $APP_DOMAIN"
|
|
if [ -n "$APP_WWW_DOMAIN" ]; then
|
|
DOMAINS="$DOMAINS -d $APP_WWW_DOMAIN"
|
|
fi
|
|
|
|
STAGING_FLAG=""
|
|
if [ "$CERTBOT_STAGING" = "1" ]; then
|
|
STAGING_FLAG="--staging"
|
|
fi
|
|
|
|
# shellcheck disable=SC2086
|
|
certbot certonly \
|
|
--webroot \
|
|
-w /var/www/certbot \
|
|
--agree-tos \
|
|
--non-interactive \
|
|
--email "$ACME_EMAIL" \
|
|
--keep-until-expiring \
|
|
$STAGING_FLAG \
|
|
$DOMAINS || true
|
|
|
|
nginx -s reload || true
|
|
sleep "$CERTBOT_RENEW_INTERVAL"
|
|
done
|
|
) &
|