Implement Node.js backend rewrite with SQLite authentication, admin dashboard and One-Click docker update

This commit is contained in:
Kroonk
2026-04-12 15:40:46 +02:00
parent 1c233db10e
commit 5747813d2d
11 changed files with 2910 additions and 105 deletions

59
admin.html Normal file
View File

@@ -0,0 +1,59 @@
<!DOCTYPE HTML>
<html>
<head>
<title>Admin Dashboard - Mischkomposition</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="stylesheet" href="/assets/css/main.min.css" />
<style>
.admin-section { background: rgba(0,0,0,0.5); padding: 2em; margin-bottom: 2em; border-radius: 4px; }
.img-check { display: inline-block; width: 100px; margin: 5px; text-align: center; }
.img-check img { width: 100px; height: 100px; object-fit: cover; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 10px; border-bottom: 1px solid rgba(255,255,255,0.2); }
</style>
</head>
<body class="is-preload">
<div id="wrapper">
<header id="header">
<h1><a href="/index.html"><strong>Mischkomposition</strong> Admin</a></h1>
<nav><ul><li><a href="#" id="logout-btn">Logout <i class="fa fa-sign-out"></i></a></li></ul></nav>
</header>
<div id="main" style="display:block; padding: 2em; max-width: 900px; margin: 0 auto; width: 100%;">
<div class="admin-section">
<h2>System</h2>
<p>Aktualisiert den Docker-Container aus dem GitHub Repository. Container startet danach neu.</p>
<button id="update-btn" class="primary">Website Aktualisieren (Docker Pull)</button>
<p id="update-status" style="margin-top: 10px;"></p>
</div>
<div class="admin-section">
<h2>Nutzerverwaltung</h2>
<form id="create-user-form" style="display:flex; gap:10px; margin-bottom:1em;">
<input type="text" id="new-username" placeholder="Nutzername" required />
<input type="password" id="new-password" placeholder="Passwort" required />
<button type="submit">Erstellen</button>
</form>
<table>
<thead><tr><th>ID</th><th>Username</th><th>Aktion</th></tr></thead>
<tbody id="users-tbody"></tbody>
</table>
</div>
<div class="admin-section">
<h2>BildZuweisung</h2>
<select id="user-select" style="margin-bottom: 1em;">
<option value="">Nutzer wählen...</option>
</select>
<div id="image-checkboxes" style="display:flex; flex-wrap:wrap; gap:10px;"></div>
<button id="save-assignments" style="margin-top:1em;">Zuweisung Speichern</button>
</div>
</div>
</div>
<script src="/assets/js/jquery.min.js"></script>
<script src="/assets/js/admin.js"></script>
</body>
</html>