50 lines
2.0 KiB
Python
Executable File
50 lines
2.0 KiB
Python
Executable File
#!/usr/bin/python3
|
||
|
||
import sys, os, subprocess, traceback
|
||
|
||
sys.path.append("/opt/bunkerweb/deps/python")
|
||
sys.path.append("/opt/bunkerweb/utils")
|
||
|
||
import logger
|
||
|
||
def renew(domain) :
|
||
cmd = "/opt/bunkerweb/deps/python/bin/certbot renew --cert-name " + domain + " --deploy-hook /opt/bunkerweb/core/letsencrypt/jobs/certbot-deploy.py"
|
||
os.environ["PYTHONPATH"] = "/opt/bunkerweb/deps/python"
|
||
proc = subprocess.run(cmd.split(" "), stdin=subprocess.DEVNULL, stderr=subprocess.STDOUT, env=os.environ)
|
||
return proc.returncode
|
||
|
||
status = 0
|
||
|
||
try :
|
||
|
||
if os.getenv("MULTISITE") == "yes" :
|
||
for first_server in os.getenv("SERVER_NAME").split(" ") :
|
||
if first_server == "" :
|
||
continue
|
||
if os.getenv(first_server + "_AUTO_LETS_ENCRYPT", os.getenv("AUTO_LETS_ENCRYPT")) != "yes" :
|
||
continue
|
||
if not os.path.exists("/etc/letsencrypt/live/" + first_server + "/cert.pem") :
|
||
continue
|
||
ret = renew(first_server)
|
||
if ret != 0 :
|
||
status = 2
|
||
logger.log("LETS-ENCRYPT", "❌", "Certificates renewal for " + first_server + " failed")
|
||
else :
|
||
logger.log("LETS-ENCRYPT", "ℹ️", "Certificates renewal for " + first_server + " successful")
|
||
|
||
elif os.getenv("AUTO_LETS_ENCRYPT") == "yes" and os.getenv("SERVER_NAME") != "" :
|
||
first_server = os.getenv("SERVER_NAME").split(" ")[0]
|
||
if os.path.exists("/etc/letsencrypt/live/" + first_server + "/cert.pem") :
|
||
ret = renew(first_server)
|
||
if ret != 0 :
|
||
status = 2
|
||
logger.log("LETS-ENCRYPT", "❌", "Certificates renewal for " + first_server + " failed")
|
||
else :
|
||
logger.log("LETS-ENCRYPT", "ℹ️", "Certificates renewal for " + first_server + " successful")
|
||
|
||
except :
|
||
status = 2
|
||
logger.log("LETS-ENCRYPT", "❌", "Exception while running certbot-renew.py :")
|
||
print(traceback.format_exc())
|
||
|
||
sys.exit(status) |