24 lines
2.0 KiB
HTML
24 lines
2.0 KiB
HTML
<!DOCTYPE html><html><head><meta charset="utf-8"><title>Blade Agent</title>
|
|
<style>*{margin:0;padding:0;box-sizing:border-box}body{background:#0d1117;color:#e6edf3;font-family:system-ui;display:flex;justify-content:center;align-items:center;min-height:100vh}
|
|
.card{background:#161b22;border:1px solid #30363d;border-radius:12px;padding:40px;max-width:500px;text-align:center}
|
|
h1{font-size:1.5rem;margin-bottom:16px}p{color:#8b949e;margin-bottom:24px;line-height:1.5}
|
|
.btn{display:inline-block;background:#238636;color:white;padding:14px 32px;border-radius:8px;text-decoration:none;font-size:1.1rem;font-weight:600;transition:all .15s}
|
|
.btn:hover{background:#2ea043;transform:translateY(-1px)}
|
|
.status{margin-top:20px;padding:12px;background:#0d1117;border-radius:8px;font-family:monospace;font-size:.85rem}
|
|
.ok{color:#3fb950}.warn{color:#d29922}.err{color:#f85149}
|
|
</style></head><body>
|
|
<div class="card">
|
|
<h1>🛰 WEVAL Sentinel Agent v2.1</h1>
|
|
<p>Self-healing agent avec watchdog automatique.<br>Télécharge, installe et lance en un clic.</p>
|
|
<a class="btn" href="/products/weval-sentinel-install.bat" download>⬇️ Télécharger & Installer</a>
|
|
<div class="status" id="st">Checking agent status...</div>
|
|
<script>
|
|
fetch('/api/blade-api.php?action=status&k=BLADE2026').then(r=>r.text().then(t=>{/* HTML_GUARD_V2_BATCH */var q=(t||"").trim();if(q.startsWith("<!DOCTYPE")||q.startsWith("<html")){return{error:"[HTTP "+r.status+"]",isHtmlError:true}}try{return JSON.parse(q)}catch(e){return{error:"JSON "+e.message}}})).then(d=>{
|
|
const hb=d.blade?.heartbeat;if(!hb)return document.getElementById('st').innerHTML='<span class="err">No heartbeat</span>';
|
|
const age=Math.round((Date.now()/1000-new Date(hb.ts).getTime()/1000)/60);
|
|
const cls=age<5?'ok':age<30?'warn':'err';
|
|
document.getElementById('st').innerHTML=`<span class="${cls}">${hb.hostname} — ${age}min ago — ${hb.ip} — v${hb.agent_version}</span>`;
|
|
}).catch(()=>document.getElementById('st').innerHTML='<span class="err">API Error</span>');
|
|
</script>
|
|
</div><!-- CARTO_REMOVED -->
|
|
</body></html> |