mirror of
https://github.com/aljazceru/addons.git
synced 2025-12-17 21:24:20 +01:00
33 lines
956 B
Bash
Executable File
33 lines
956 B
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
CERT_DIR=/data/letsencrypt
|
|
WORK_DIR=/data/workdir
|
|
CONFIG_PATH=/data/options.json
|
|
|
|
EMAIL=$(jq --raw-output ".email" $CONFIG_PATH)
|
|
DOMAINS=$(jq --raw-output ".domains[]" $CONFIG_PATH)
|
|
KEYFILE=$(jq --raw-output ".keyfile" $CONFIG_PATH)
|
|
CERTFILE=$(jq --raw-output ".certfile" $CONFIG_PATH)
|
|
|
|
mkdir -p "$CERT_DIR"
|
|
|
|
# Generate new certs
|
|
if [ ! -d "$CERT_DIR/live" ]; then
|
|
DOMAIN_ARR=()
|
|
for line in $DOMAINS; do
|
|
DOMAIN_ARR+=(-d "$line")
|
|
done
|
|
|
|
echo "$DOMAINS" > /data/domains.gen
|
|
certbot certonly --non-interactive --standalone --email "$EMAIL" --agree-tos --config-dir "$CERT_DIR" --work-dir "$WORK_DIR" --preferred-challenges "http" "${DOMAIN_ARR[@]}"
|
|
|
|
# Renew certs
|
|
else
|
|
certbot renew --non-interactive --config-dir "$CERT_DIR" --work-dir "$WORK_DIR" --preferred-challenges "http"
|
|
fi
|
|
|
|
# copy certs to store
|
|
cp "$CERT_DIR"/live/*/privkey.pem "/ssl/$KEYFILE"
|
|
cp "$CERT_DIR"/live/*/fullchain.pem "/ssl/$CERTFILE"
|