Admin-Panel (/admin): Auth, Spieler-Tracking, Live-Tuning, Bild-Verwaltung
- Passwortgeschütztes Panel unter /admin (Auto-Passwort 20 Zeichen, per CLI abrufbar: `node server/admin.js password` / `password reset`), In-Memory-Sessions + Cookie, Login-Rate-Limit. - Spieler-Tracking: pro Score IP (CF/XFF/req.ip), Gerät/Browser (ua-parser-js), grober Ort (geoip-lite, offline) -> data/players.json; Aggregation pro Name. - Live-Tuning: configStore (data/config.json) für Timer + Schwierigkeitskurve; Server (makeRound) und Client (/api/config) lesen daraus -> Änderungen ohne Neustart. - Bild-Verwaltung: Upload/Löschen von Füßen & Deko (multer) + rescanLibrary(). - Panel-Aktionen: Spieler bannen/entbannen, Rangliste heute/alles leeren. - Fix: .item object-fit:contain -> nicht-quadratische Bilder werden nicht mehr verzerrt. - trust proxy für korrekte Client-IP hinter Reverse-Proxy/Cloudflare. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
import { readLeaderboard, buildBoards, deletePlayer, clearAll, clearToday } from './leaderboardStore.js';
|
||||
import { getMode, setMode } from './modeStore.js';
|
||||
import { banPlayer, unbanPlayer, readBans } from './banStore.js';
|
||||
import { getPassword, resetPassword } from './adminAuth.js';
|
||||
|
||||
const [, , cmd, ...rest] = process.argv;
|
||||
const arg = rest.join(' ').trim();
|
||||
@@ -80,6 +81,17 @@ switch (cmd) {
|
||||
break;
|
||||
}
|
||||
|
||||
case 'password': {
|
||||
if (arg === 'reset') {
|
||||
console.log('🔑 Neues Admin-Passwort: ' + resetPassword());
|
||||
} else {
|
||||
console.log('🔑 Admin-Passwort: ' + getPassword());
|
||||
console.log(' (neu erzeugen: node server/admin.js password reset)');
|
||||
}
|
||||
console.log(' Login unter: /admin');
|
||||
break;
|
||||
}
|
||||
|
||||
case 'mode': {
|
||||
const sub = (rest[0] || '').toLowerCase();
|
||||
if (sub === 'public') {
|
||||
@@ -112,6 +124,10 @@ Bannen (namensbasiert):
|
||||
node server/admin.js unban "<name>" Sperre aufheben
|
||||
node server/admin.js bans gebannte Namen anzeigen
|
||||
|
||||
Admin-Panel (/admin):
|
||||
node server/admin.js password Admin-Passwort anzeigen
|
||||
node server/admin.js password reset neues Passwort erzeugen
|
||||
|
||||
Betriebsmodus (Spiel oeffentlich / privat):
|
||||
node server/admin.js mode aktuellen Modus anzeigen
|
||||
node server/admin.js mode public Spiel oeffentlich unter "/"
|
||||
|
||||
Reference in New Issue
Block a user