Files
lara-schach-live/README.md

4.3 KiB
Raw Blame History

Lara Kiesewetter Live Schachturnier

Live-Überwachung von Lara Kiesewetters Partien bei der ODJM (Offene Deutsche Jugendmeisterschaft) 2026. Die App lädt automatisch PGN-Daten von der Deutschen Schachjugend, zeigt das aktuelle Spielbrett an und listet alle Partien von Lara.

Screenshot

Features

  • Live-Brett Visuelle Darstellung der aktuellen Partie mit chessboard.js
  • Stockfish-Analyse Bewertungsbalken (Eval-Bar) mit Live-Score in Bauerneinheiten, powered by Stockfish-Engine
  • Spielerinfo Anzeige von Namen, ELO und Schachuhr beider Spieler
  • Zugliste Alle Züge der aktuellen Partie mit Klick-Navigation und Pfeiltasten-Steuerung
  • Alle Partien Übersicht aller Runden mit Lara; Klick zum Wechseln
  • Live-Erkennung Automatische Erkennung laufender (unterminierter) Partien
  • Turniertabelle Tabellenplatz, Punkte, Siege/Unentschieden/Niederlagen von Lara
  • Auto-Refresh Aktualisiert die Daten alle 30 Sekunden
  • Proxy-Server Lokaler Python-Server mit Stockfish-Engine-Wrapper, PGN-Proxy und statischem File-Serving

Projektstruktur

├── index.html          # HTML-Grundgerüst
├── style.css           # Dark-Theme-Styling (responsive)
├── js/
│   ├── app.js          # Hauptlogik (Brett, UI, Auto-Refresh, Eval-Bar)
│   └── pgn-parser.js   # PGN-Parser (Header + Züge extrahieren)
├── server.py           # Lokaler Proxy-Server + Stockfish-Engine (Python 3)
├── cache/              # PGN- und Standings-Cache
└── stockfish.exe       # Stockfish-Schachengine (Windows)

Setup

Voraussetzungen

  • Python 3.6+ für den Proxy-Server
  • Stockfish (optional, für Analyse) auf Windows: stockfish.exe im Projektverzeichnis
  • Browser (Chrome, Firefox, Edge)

Installation & Start

  1. Proxy-Server starten:

    python server.py
    

    Der Server läuft auf http://localhost:8111.

  2. Öffne die App im Browser:

    http://localhost:8111
    

    (Der Server serviert auch die statischen Dateien.)

Technik

Komponente Technologie
Schachbrett chessboard.js
Schachlogik chess.js
Stockfish-Analyse Stockfish Engine (lokal, via POST /evaluate)
UI HTML, CSS, Vanilla JS, jQuery
Proxy-Server Python http.server (subprocess, threading, NDJSON-Streaming)
PGN-Quelle deutsche-schachjugend.de (ODJM 2026)

Deployment

Die Anwendung kann als eigenständiger Server betrieben werden.

Produktivbetrieb (systemd Linux)

# Service-Datei erstellen
sudo tee /etc/systemd/system/lara-chess.service <<EOF
[Unit]
Description=Lara Kiesewetter Live Schachturnier
After=network.target

[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/lara-chess
ExecStart=/usr/bin/python3 /opt/lara-chess/server.py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

# Aktivieren und starten
sudo systemctl daemon-reload
sudo systemctl enable --now lara-chess

Die App läuft dann auf http://SERVER_IP:8111.

Docker

# Dockerfile
FROM python:3-slim
WORKDIR /app
COPY . .
EXPOSE 8111
CMD ["python", "server.py"]
docker build -t lara-chess .
docker run -d --name lara-chess -p 8111:8111 --restart unless-stopped lara-chess

Reverse Proxy (nginx)

server {
    listen 80;
    server_name chess.example.com;

    location / {
        proxy_pass http://127.0.0.1:8111;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Umgebungsvariablen (optional)

Variable Default Beschreibung
PORT 8111 Server-Port
STOCKFISH_PATH stockfish.exe / stockfish Pfad zur Stockfish-Engine
STOCKFISH_DEPTH 25 Stockfish-Suchtiefe