feat: add automation scripts for NAS fixes, Authentik monitoring, and Technitium DNS management

This commit is contained in:
2026-11-06 18:49:24 -05:00
parent 1965d37687
commit 8e1c5f1e66
22 changed files with 675 additions and 17 deletions

View File

@@ -0,0 +1,34 @@
import urllib.request
import ssl
import json
import sys
sys.stdout.reconfigure(encoding='utf-8')
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
# Technitium admin password is snarfnetadmin
def get_tech_zones(host):
print(f"\n--- Checking Technitium on {host} ---")
login_url = f"https://{host}/api/user/login?user=admin&pass=snarfnetadmin&includeInfo=true"
req = urllib.request.Request(login_url)
try:
with urllib.request.urlopen(req, context=ctx, timeout=8) as resp:
data = json.loads(resp.read().decode())
token = data.get('token')
print(f"Logged into {host}, token acquired.")
zones_url = f"https://{host}/api/zones/list?token={token}"
with urllib.request.urlopen(urllib.request.Request(zones_url), context=ctx, timeout=8) as z_resp:
z_data = json.loads(z_resp.read().decode())
print(f"Zones on {host}:")
for z in z_data.get('response', {}).get('zones', []):
print(f" - {z['name']} ({z.get('type')})")
except Exception as e:
print(f"Error checking {host}: {e}")
get_tech_zones("dns1.snarfnet.net")
get_tech_zones("dns2.snarfnet.net")