Files
ermnvldmr.com/ci/scripts/deploy-certbot.sh
T

43 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
set -e
# Usage: ./deploy-certbot.sh [domain1] [domain2] ...
EMAIL="personal@ermnvldmr.com"
CLOUDFLARE_INI="/etc/letsencrypt/cloudflare.ini"
# Collect domains from arguments, fallback to default if none provided
if [ $# -eq 0 ]; then
DOMAINS=("docs.ermnvldmr.com")
else
DOMAINS=("$@")
fi
# Build domain arguments for certbot
DOMAIN_ARGS=()
for d in "${DOMAINS[@]}"; do
DOMAIN_ARGS+=("-d" "$d")
done
echo "Installing certbot and Cloudflare DNS plugin..."
sudo apt-get update
sudo apt-get install -y certbot python3-certbot-cloudflare
if [ ! -f "$CLOUDFLARE_INI" ]; then
echo "Error: Cloudflare credentials file not found at $CLOUDFLARE_INI"
echo "Please ensure it exists and has 600 permissions."
exit 1
fi
echo "Requesting certificate for ${DOMAINS[*]} via Cloudflare DNS challenge..."
sudo certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials "$CLOUDFLARE_INI" \
"${DOMAIN_ARGS[@]}" \
--email "$EMAIL" \
--agree-tos \
--no-eff-email \
--non-interactive
echo "Certificates for ${DOMAINS[*]} have been processed."