- 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>
19 lines
471 B
JSON
19 lines
471 B
JSON
{
|
|
"name": "fuesse-sexy",
|
|
"version": "1.0.0",
|
|
"description": "fuesse.sexy — 'Wanted!' Minigame: schnapp den gesuchten Fuss.",
|
|
"type": "module",
|
|
"scripts": {
|
|
"start": "node server/index.js",
|
|
"setup": "sh install.sh",
|
|
"reset-stats": "node scripts/reset-leaderboard.mjs",
|
|
"lb": "node server/admin.js"
|
|
},
|
|
"dependencies": {
|
|
"express": "^4.19.2",
|
|
"geoip-lite": "^1.4.10",
|
|
"multer": "^1.4.5-lts.2",
|
|
"ua-parser-js": "^1.0.41"
|
|
}
|
|
}
|