feat: add homelab deployment configs, documentation, and automation scripts

This commit is contained in:
2026-11-12 16:57:08 -05:00
parent 1228b957de
commit 5a70460e89
270 changed files with 9709 additions and 47 deletions

View 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()