UNPKG

@nodedaemon/core

Version:

Production-ready Node.js process manager with zero external dependencies

64 lines (60 loc) 2.18 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>NodeDaemon Web UI</title> <link rel="stylesheet" href="styles.css"> </head> <body> <div class="container"> <header> <h1>NodeDaemon</h1> <div class="header-info"> <span class="status-indicator" id="connectionStatus"></span> <span id="daemonStatus">Connecting...</span> </div> </header> <div class="controls"> <button class="btn btn-primary" onclick="refreshProcesses()"> <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor"> <path d="M1 4v6h6M23 20v-6h-6M20.49 9A9 9 0 1 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15"/> </svg> Refresh </button> </div> <div class="processes-container"> <table class="processes-table"> <thead> <tr> <th>Name</th> <th>Status</th> <th>PID</th> <th>CPU</th> <th>Memory</th> <th>Uptime</th> <th>Restarts</th> <th>Actions</th> </tr> </thead> <tbody id="processesTable"> <tr> <td colspan="8" class="loading">Loading processes...</td> </tr> </tbody> </table> </div> <div class="logs-container"> <div class="logs-header"> <h2>Logs</h2> <select id="logFilter" onchange="filterLogs()"> <option value="">All Processes</option> </select> <button class="btn btn-secondary" onclick="clearLogs()">Clear</button> </div> <div class="logs-content" id="logsContent"></div> </div> </div> <script src="app.js"></script> </body> </html>