feat: deployment support and production readiness

- Add deployment section to README (systemd, Docker, nginx reverse proxy)
- Add environment variable support to server.py (PORT, PGN_URL, CACHE_TTL)
- Update .gitignore for Python artifacts and lara-chess directory
- Improve board/navigation UX in app.js (userScrolledMoves tracking,
  updateClocks function, better game switching)
This commit is contained in:
2026-05-24 15:12:17 +02:00
parent 0d94cac60c
commit 2ad3dab7f8
4 changed files with 139 additions and 15 deletions

View File

@@ -59,6 +59,79 @@ Live-Überwachung von Lara Kiesewetters Partien bei der **ODJM (Offene Deutsche
| Proxy-Server | Python http.server (ohne externe Abhängigkeiten) |
| PGN-Quelle | deutsche-schachjugend.de (ODJM 2026) |
## Deployment
Die Anwendung kann als eigenständiger Server betrieben werden.
### Produktivbetrieb (systemd Linux)
```bash
# 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
# Dockerfile
FROM python:3-slim
WORKDIR /app
COPY . .
EXPOSE 8111
CMD ["python", "server.py"]
```
```bash
docker build -t lara-chess .
docker run -d --name lara-chess -p 8111:8111 --restart unless-stopped lara-chess
```
### Reverse Proxy (nginx)
```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)
In `server.py` können Port und PGN-URL über Umgebungsvariablen überschrieben werden:
| Variable | Default | Beschreibung |
|---|---|---|
| `PORT` | `8111` | Server-Port |
| `PGN_URL` | (siehe server.py) | Quelle der PGN-Daten |
| `CACHE_TTL` | `30` | Cache-Gültigkeit in Sekunden |
## Konfiguration
Die wichtigsten Konstanten in `app.js`: