This commit is contained in:
2026-10-03 16:49:49 +07:00
parent 55179c9508
commit 17f551aa46
7 changed files with 98 additions and 7 deletions
+9 -3
View File
@@ -5,13 +5,15 @@ DOMAIN="${MAIL_DOMAIN:-mail.crabs-games.art}"
EMAIL="${ACME_EMAIL:-admin@crabs-games.art}"
REPROXY_CONTAINER="${REPROXY_CONTAINER:-reproxy}"
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
SSL_DIR="$SCRIPT_DIR/ssl"
REPROXY_SSL_DIR="${REPROXY_SSL_DIR:-/Users/vladimir/reproxy/var/ssl}"
CERTBOT_DIR="$REPROXY_SSL_DIR/certbot"
CERT_DIR="$REPROXY_SSL_DIR/certificates/acme-v02.api.letsencrypt.org-directory/$DOMAIN"
COMPOSE_FILE="$SCRIPT_DIR/docker-compose.yml"
command -v docker >/dev/null || { echo "docker is required" >&2; exit 1; }
docker info >/dev/null || { echo "docker access is required" >&2; exit 1; }
mkdir -p "$SSL_DIR"
mkdir -p "$CERTBOT_DIR" "$CERT_DIR"
reproxy_was_running=0
if docker inspect -f '{{.State.Running}}' "$REPROXY_CONTAINER" 2>/dev/null | grep -qx true; then
@@ -28,15 +30,19 @@ trap restart_reproxy EXIT
docker run --rm \
-p 80:80 \
-v "$SSL_DIR:/etc/letsencrypt" \
-v "$CERTBOT_DIR:/etc/letsencrypt" \
certbot/certbot:latest \
certonly --standalone \
--keep-until-expiring \
--non-interactive \
--agree-tos \
--email "$EMAIL" \
--cert-name "$DOMAIN" \
-d "$DOMAIN"
cp "$CERTBOT_DIR/live/$DOMAIN/fullchain.pem" "$CERT_DIR/$DOMAIN.crt"
cp "$CERTBOT_DIR/live/$DOMAIN/privkey.pem" "$CERT_DIR/$DOMAIN.key"
docker compose -f "$COMPOSE_FILE" up -d --force-recreate mailserver
echo "TLS certificate for $DOMAIN is installed."