feat: add homelab deployment configs, documentation, and automation scripts
This commit is contained in:
36
scripts/inspect_customapi.py
Normal file
36
scripts/inspect_customapi.py
Normal file
@@ -0,0 +1,36 @@
|
||||
import base64
|
||||
import paramiko
|
||||
|
||||
c = paramiko.SSHClient()
|
||||
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||
c.connect('140.44.4.41', username='root', key_filename=r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet', timeout=10)
|
||||
|
||||
def run(cmd):
|
||||
_, o, e = c.exec_command(cmd)
|
||||
out = o.read().decode().strip()
|
||||
return out
|
||||
|
||||
pod = run('kubectl get pod -n infrastructure -l app.kubernetes.io/name=homepage-2-1744068158 -o jsonpath="{.items[0].metadata.name}"')
|
||||
|
||||
print("=== /app/src/widgets/customapi/component.jsx ===")
|
||||
print(run(f"kubectl exec -n infrastructure {pod} -- cat /app/src/widgets/customapi/component.jsx"))
|
||||
|
||||
script = """
|
||||
const fs = require('fs');
|
||||
const content = fs.readFileSync('/app/.next/server/pages/api/services/proxy.js', 'utf8');
|
||||
const idx = content.indexOf('customapiProxyHandler');
|
||||
if (idx !== -1) {
|
||||
console.log(content.substring(Math.max(0, idx - 100), Math.min(content.length, idx + 1000)));
|
||||
} else {
|
||||
const idx2 = content.indexOf('customapi');
|
||||
console.log('customapi at', idx2);
|
||||
console.log(content.substring(Math.max(0, idx2 - 100), Math.min(content.length, idx2 + 1000)));
|
||||
}
|
||||
"""
|
||||
|
||||
b64 = base64.b64encode(script.encode('utf-8')).decode('ascii')
|
||||
run(f"kubectl exec -n infrastructure {pod} -- sh -c 'echo {b64} | base64 -d > /tmp/customapi_code.js'")
|
||||
print(run(f"kubectl exec -n infrastructure {pod} -- node /tmp/customapi_code.js"))
|
||||
|
||||
c.close()
|
||||
|
||||
Reference in New Issue
Block a user