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:
73
README.md
73
README.md
@@ -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`:
|
||||
|
||||
Reference in New Issue
Block a user