17 lines
817 B
Bash
17 lines
817 B
Bash
#!/usr/bin/env bash
|
|
set +x
|
|
set -Eeuo pipefail
|
|
root=${1:?}
|
|
domain=${2:?}
|
|
image=${3:?}
|
|
[[ "$root" == /*/gray-logistics-chat && "$root" != *..* ]] || exit 2
|
|
[[ "$domain" =~ ^[a-z0-9.-]+$ && "$image" =~ ^baiyue-logistics-chat-certbot:[a-f0-9]{12}-b[0-9]+$ ]] || exit 2
|
|
[[ "$(cat "$root/.project")" == baiyue-logistics-chat-gray ]] || exit 2
|
|
certificate="$root/tls/config/live/$domain/fullchain.pem"
|
|
previous=$(sha256sum "$certificate")
|
|
docker run --rm --name baiyue-logistics-chat-certbot-renew \
|
|
-v "$root/tls/config:/etc/letsencrypt" -v "$root/tls/work:/var/lib/letsencrypt" \
|
|
-v "$root/tls/logs:/var/log/letsencrypt" -v /var/lib/baiyue-logistics-chat-acme:/webroot \
|
|
"$image" renew --non-interactive --cert-name "$domain"
|
|
if [[ "$(sha256sum "$certificate")" != "$previous" ]]; then nginx -t; nginx -s reload; fi
|