Init repo

This commit is contained in:
2026-02-26 11:51:36 -05:00
commit 5400d82acd
50 changed files with 17748 additions and 0 deletions

175
static/index.html Normal file
View File

@@ -0,0 +1,175 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LLM Proxy Gateway - Admin Dashboard</title>
<link rel="stylesheet" href="/css/dashboard.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://cdn.jsdelivr.net/npm/luxon@3.4.4/build/global/luxon.min.js"></script>
</head>
<body>
<!-- Login Screen -->
<div id="login-screen" class="login-container">
<div class="login-card">
<div class="login-header">
<i class="fas fa-robot login-icon"></i>
<h1>LLM Proxy Gateway</h1>
<p class="login-subtitle">Admin Dashboard</p>
</div>
<form id="login-form" class="login-form">
<div class="form-group">
<label for="username">
<i class="fas fa-user"></i> Username
</label>
<input type="text" id="username" name="username" placeholder="admin" required>
</div>
<div class="form-group">
<label for="password">
<i class="fas fa-lock"></i> Password
</label>
<input type="password" id="password" name="password" placeholder="••••••••" required>
</div>
<div class="form-group">
<button type="submit" class="login-btn">
<i class="fas fa-sign-in-alt"></i> Sign In
</button>
</div>
<div class="login-footer">
<p>Default credentials: admin / admin123</p>
</div>
</form>
<div id="login-error" class="error-message" style="display: none;">
<i class="fas fa-exclamation-circle"></i>
<span>Invalid credentials. Please try again.</span>
</div>
</div>
</div>
<!-- Main Dashboard -->
<div id="dashboard" class="dashboard-container" style="display: none;">
<!-- Sidebar -->
<nav class="sidebar">
<div class="sidebar-header">
<div class="logo">
<i class="fas fa-robot"></i>
<span>LLM Proxy</span>
</div>
<button class="sidebar-toggle" id="sidebar-toggle">
<i class="fas fa-bars"></i>
</button>
</div>
<div class="sidebar-menu">
<div class="menu-section">
<h3 class="menu-title">MAIN</h3>
<a href="#overview" class="menu-item active" data-page="overview">
<i class="fas fa-tachometer-alt"></i>
<span>Overview</span>
</a>
<a href="#analytics" class="menu-item" data-page="analytics">
<i class="fas fa-chart-line"></i>
<span>Analytics</span>
</a>
<a href="#costs" class="menu-item" data-page="costs">
<i class="fas fa-dollar-sign"></i>
<span>Cost Management</span>
</a>
</div>
<div class="menu-section">
<h3 class="menu-title">MANAGEMENT</h3>
<a href="#clients" class="menu-item" data-page="clients">
<i class="fas fa-users"></i>
<span>Client Management</span>
</a>
<a href="#providers" class="menu-item" data-page="providers">
<i class="fas fa-server"></i>
<span>Providers</span>
</a>
<a href="#monitoring" class="menu-item" data-page="monitoring">
<i class="fas fa-heartbeat"></i>
<span>Real-time Monitoring</span>
</a>
</div>
<div class="menu-section">
<h3 class="menu-title">SYSTEM</h3>
<a href="#settings" class="menu-item" data-page="settings">
<i class="fas fa-cog"></i>
<span>Settings</span>
</a>
<a href="#logs" class="menu-item" data-page="logs">
<i class="fas fa-file-alt"></i>
<span>System Logs</span>
</a>
</div>
</div>
<div class="sidebar-footer">
<div class="user-info">
<div class="user-avatar">
<i class="fas fa-user-circle"></i>
</div>
<div class="user-details">
<span class="user-name">Administrator</span>
<span class="user-role">Super Admin</span>
</div>
</div>
<button class="logout-btn" id="logout-btn">
<i class="fas fa-sign-out-alt"></i>
</button>
</div>
</nav>
<!-- Main Content -->
<main class="main-content">
<!-- Top Navigation -->
<header class="top-nav">
<div class="nav-left">
<h1 class="page-title" id="page-title">Dashboard Overview</h1>
</div>
<div class="nav-right">
<div class="nav-item">
<i class="fas fa-bell"></i>
<span class="badge">3</span>
</div>
<div class="nav-item">
<i class="fas fa-sync-alt" id="refresh-btn"></i>
</div>
<div class="nav-item">
<span id="current-time">Loading...</span>
</div>
</div>
</header>
<!-- Page Content -->
<div class="page-content" id="page-content">
<!-- Overview page will be loaded here -->
</div>
</main>
</div>
<!-- WebSocket Status Indicator -->
<div class="ws-status" id="ws-status">
<span class="ws-dot"></span>
<span class="ws-text">Connecting...</span>
</div>
<!-- Scripts -->
<script src="/js/auth.js"></script>
<script src="/js/dashboard.js"></script>
<script src="/js/websocket.js"></script>
<script src="/js/charts.js"></script>
<script src="/js/pages/overview.js"></script>
<script src="/js/pages/analytics.js"></script>
<script src="/js/pages/costs.js"></script>
<script src="/js/pages/clients.js"></script>
<script src="/js/pages/providers.js"></script>
<script src="/js/pages/monitoring.js"></script>
<script src="/js/pages/settings.js"></script>
<script src="/js/pages/logs.js"></script>
</body>
</html>