bunkerweb 1.4.0
This commit is contained in:
81
core/bunkernet/jobs/bunkernet-register.py
Executable file
81
core/bunkernet/jobs/bunkernet-register.py
Executable file
@@ -0,0 +1,81 @@
|
||||
#!/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/core/bunkernet/jobs")
|
||||
|
||||
import logger
|
||||
from bunkernet import register, ping, get_id
|
||||
|
||||
status = 0
|
||||
|
||||
try :
|
||||
|
||||
# Check if at least a server has BunkerNet activated
|
||||
bunkernet_activated = False
|
||||
# Multisite case
|
||||
if os.getenv("MULTISITE") == "yes" :
|
||||
for first_server in os.getenv("SERVER_NAME").split(" ") :
|
||||
if os.getenv(first_server + "_USE_BUNKERNET", os.getenv("USE_BUNKERNET")) == "yes" :
|
||||
bunkernet_activated = True
|
||||
break
|
||||
# Singlesite case
|
||||
elif os.getenv("USE_BUNKERNET") == "yes" :
|
||||
bunkernet_activated = True
|
||||
if not bunkernet_activated :
|
||||
logger.log("BUNKERNET", "ℹ️", "BunkerNet is not activated, skipping registration...")
|
||||
os._exit(0)
|
||||
|
||||
# Create directory if it doesn't exist
|
||||
os.makedirs("/opt/bunkerweb/cache/bunkernet", exist_ok=True)
|
||||
|
||||
# Ask an ID if needed
|
||||
if not os.path.isfile("/opt/bunkerweb/cache/bunkernet/instance.id") :
|
||||
logger.log("BUNKERNET", "ℹ️", "Registering instance on BunkerNet API ...")
|
||||
ok, status, data = register()
|
||||
if not ok :
|
||||
logger.log("BUNKERNET", "❌", "Error while sending register request to BunkerNet API : " + data)
|
||||
os._exit(1)
|
||||
elif status == 429 :
|
||||
logger.log("BUNKERNET", "⚠️", "BunkerNet API is rate limiting us, trying again later...")
|
||||
os._exit(0)
|
||||
elif status != 200 :
|
||||
logger.log("BUNKERNET", "❌", "Error " + str(status) + " from BunkerNet API : " + data["data"])
|
||||
os._exit(1)
|
||||
elif data["result"] != "ok" :
|
||||
logger.log("BUNKERNET", "❌", "Received error from BunkerNet API while sending register request : " + data["data"])
|
||||
os._exit(1)
|
||||
with open("/opt/bunkerweb/cache/bunkernet/instance.id", "w") as f :
|
||||
f.write(data["data"])
|
||||
logger.log("BUNKERNET", "ℹ️", "Successfully registered on BunkerNet API with instance id " + get_id())
|
||||
else :
|
||||
logger.log("BUNKERNET", "ℹ️", "Already registered on BunkerNet API with instance id " + get_id())
|
||||
|
||||
# Ping
|
||||
logger.log("BUNKERNET", "ℹ️", "Checking connectivity with BunkerNet API ...")
|
||||
ok, status, data = ping()
|
||||
if not ok :
|
||||
logger.log("BUNKERNET", "❌", "Error while sending ping request to BunkerNet API : " + data)
|
||||
os._exit(2)
|
||||
elif status == 429 :
|
||||
logger.log("BUNKERNET", "⚠️", "BunkerNet API is rate limiting us, trying again later...")
|
||||
os._exit(0)
|
||||
elif status == 401 :
|
||||
logger.log("BUNKERNET", "⚠️", "Instance ID is not registered, removing it and retrying a register later...")
|
||||
os.remove("/opt/bunkerweb/cache/bunkernet/instance.id")
|
||||
os._exit(1)
|
||||
elif data["result"] != "ok" :
|
||||
logger.log("BUNKERNET", "❌", "Received error from BunkerNet API while sending ping request : " + data["data"] + ", removing instance ID")
|
||||
os._exit(1)
|
||||
logger.log("BUNKERNET", "ℹ️", "Successfully checked connectivity with BunkerNet API")
|
||||
|
||||
status = 1
|
||||
|
||||
except :
|
||||
status = 2
|
||||
logger.log("BUNKERNET", "❌", "Exception while running bunkernet-register.py :")
|
||||
print(traceback.format_exc())
|
||||
|
||||
sys.exit(status)
|
||||
Reference in New Issue
Block a user