Browse Source

Add option in menu to renew all Let's Encrypt certificates

Ideally run certbot.sh regularly via cron job, otherwise manually.
dennisro 7 năm trước cách đây
mục cha
commit
8b32560fbb
2 tập tin đã thay đổi với 25 bổ sung0 xóa
  1. 13 0
      certbot.sh
  2. 12 0
      dockerbunker.sh

+ 13 - 0
certbot.sh

@@ -0,0 +1,13 @@
+#!/usr/bin/env bash
+
+# Find base dir
+while true;do ls | grep -q dockerbunker.sh;if [[ $? == 0 ]];then BASE_DIR=$PWD;break;else cd ../;fi;done
+
+source "${BASE_DIR}"/data/include/init.sh
+
+docker run \
+	--rm -it --name=certbot \
+	--network dockerbunker-network \
+	-v "${CONF_DIR}"/nginx/ssl/letsencrypt:/etc/letsencrypt \
+	-v "${BASE_DIR}"/data/web:/var/www/html:rw \
+	certbot/certbot renew

+ 12 - 0
dockerbunker.sh

@@ -59,6 +59,7 @@ stopall=$(printf "\e[1;4;33mStop all running containers\e[0m")
 startnginx=$(printf "\e[1;4;33mStart nginx container\e[0m")
 stopnginx=$(printf "\e[1;4;33mStop nginx container\e[0m")
 restartnginx=$(printf "\e[1;4;33mRestart nginx container\e[0m")
+renewcerts=$(printf "\e[1;4;33mRenew Let's Encrypt certificates\e[0m")
 restartall=$(printf "\e[1;4;33mRestart all containers\e[0m")
 destroyall=$(printf "\e[1;4;33mDestroy everything\e[0m")
 exitmenu=$(printf "\e[1;4;33mExit\e[0m")
@@ -73,6 +74,9 @@ count=$((${#AVAILABLE_SERVICES[@]}+1))
 	&& AVAILABLE_SERVICES+=( "$restartnginx") \
 	&& count=$(($count+2))
 
+[[ $(ls -A "${CONF_DIR}"/nginx/ssl/letsencrypt/live) ]] \
+	&& AVAILABLE_SERVICES+=( "$renewcerts" ) && cound=$(($count+1))
+
 [[ ${#INSTALLED_SERVICES[@]} > 0 \
 	|| ${#STATIC_SITES[@]} > 0 \
 	|| ${#CONFIGURED_SERVICES[@]} > 0 ]] \
@@ -122,6 +126,14 @@ do
 		sleep 1
 		break
 		;;
+	"$renewcerts")
+		echo -e "\n\e[3m\xe2\x86\x92 Renew Let's Encrypt certificates\e[0m\n"
+		"${BASE_DIR}"/certbot.sh
+		restart_nginx
+		say_done
+		sleep 1
+		break
+		;;
 	"$startall")
 		prevent_nginx_restart=1
 		start_all