50 lines
1.8 KiB
Python
Executable File
50 lines
1.8 KiB
Python
Executable File
#!/usr/bin/python3
|
||
|
||
import sys, os, traceback
|
||
|
||
sys.path.append("/opt/bunkerweb/deps/python")
|
||
sys.path.append("/opt/bunkerweb/utils")
|
||
sys.path.append("/opt/bunkerweb/api")
|
||
|
||
from logger import log
|
||
from API import API
|
||
|
||
status = 0
|
||
|
||
try :
|
||
# Get env vars
|
||
is_kubernetes_mode = os.getenv("KUBERNETES_MODE") == "yes"
|
||
is_swarm_mode = os.getenv("SWARM_MODE") == "yes"
|
||
token = os.getenv("CERTBOT_TOKEN")
|
||
|
||
# Cluster case
|
||
if is_kubernetes_mode or is_swarm_mode :
|
||
for variable, value in os.environ.items() :
|
||
if not variable.startswith("CLUSTER_INSTANCE_") :
|
||
continue
|
||
endpoint = value.split(" ")[0]
|
||
host = value.split(" ")[1]
|
||
api = API(endpoint, host=host)
|
||
sent, err, status, resp = api.request("DELETE", "/lets-encrypt/challenge", data={"token": token})
|
||
if not sent :
|
||
status = 1
|
||
log("LETS-ENCRYPT", "❌", "Can't send API request to " + api.get_endpoint() + "/lets-encrypt/challenge : " + err)
|
||
else :
|
||
if status != 200 :
|
||
status = 1
|
||
log("LETS-ENCRYPT", "❌", "Error while sending API request to " + api.get_endpoint() + "/lets-encrypt/challenge : status = " + resp["status"] + ", msg = " + resp["msg"])
|
||
else :
|
||
log("LETS-ENCRYPT", "ℹ️", "Successfully sent API request to " + api.get_endpoint() + "/lets-encrypt/challenge")
|
||
|
||
# Docker or Linux case
|
||
else :
|
||
challenge_path = "/opt/bunkerweb/tmp/lets-encrypt/.well-known/acme-challenge/" + token
|
||
if os.path.isfile(challenge_path) :
|
||
os.remove(challenge_path)
|
||
except :
|
||
status = 1
|
||
log("LETS-ENCRYPT", "❌", "Exception while running certbot-cleanup.py :")
|
||
print(traceback.format_exc())
|
||
|
||
sys.exit(status)
|