feat: Michess – Initiales Setup auf Basis von chessu

- Rebranding: chessu → Michess (Header, Footer, Metadata, Session-Cookie)
- Stockfish KI-Integration: 6 Schwierigkeitsgrade (Anfänger bis Meister)
- Admin-Panel: Nutzerverwaltung, Sperren/Entsperren, Git-Pull-Update
- Freundessystem: Anfragen, Freundesliste, Nutzersuche
- DB-Schema: role, banned, friend_request, friendship Tabellen
- Docker: NAS-optimiertes docker-compose.yml mit PostgreSQL Healthcheck
- Stockfish binary via apk im Alpine-Image installiert
- .env.example für einfaches Deployment
- scripts/update.sh für manuelles NAS-Update
- Brain.md + Plan.md als Projekt-Gedächtnis

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Michess
2026-04-13 10:02:52 +02:00
parent 29968f023d
commit 7dac042d73
28 changed files with 1760 additions and 89 deletions

View File

@@ -1,24 +1,54 @@
"use client";
import CreateGame from "@/components/home/CreateGame";
import JoinGame from "@/components/home/JoinGame";
import PublicGames from "@/components/home/PublicGames/PublicGames";
import Link from "next/link";
import { useSession } from "@/context/session";
export const revalidate = 0;
export default function Home() {
const { user } = useSession();
return (
<div className="flex w-full flex-wrap items-center justify-center gap-8 px-4 py-10 lg:gap-16 ">
<div className="flex w-full flex-wrap items-start justify-center gap-8 px-4 py-10 lg:gap-16">
<PublicGames />
<div className="flex flex-col items-center gap-4">
{/* Against AI */}
<div className="flex flex-col items-center">
<h2 className="mb-4 text-xl font-bold leading-tight">Join from invite</h2>
<h2 className="mb-4 text-xl font-bold leading-tight">Gegen KI spielen</h2>
<Link href="/ai" className="btn btn-primary w-full max-w-xs">
Gegen Stockfish spielen
</Link>
</div>
<div className="divider divider-vertical">oder</div>
{/* Friends */}
{user?.id && typeof user.id === "number" && (
<>
<div className="flex flex-col items-center">
<h2 className="mb-4 text-xl font-bold leading-tight">Freunde</h2>
<Link href="/friends" className="btn btn-outline w-full max-w-xs">
👥 Freunde verwalten
</Link>
</div>
<div className="divider divider-vertical">oder</div>
</>
)}
<div className="flex flex-col items-center">
<h2 className="mb-4 text-xl font-bold leading-tight">Per Einladung beitreten</h2>
<JoinGame />
</div>
<div className="divider divider-vertical">or</div>
<div className="divider divider-vertical">oder</div>
<div className="flex flex-col items-center">
<h2 className="mb-4 text-xl font-bold leading-tight">Create game</h2>
<h2 className="mb-4 text-xl font-bold leading-tight">Spiel erstellen</h2>
<CreateGame />
</div>
</div>