014781e2d0
- Added wikipediaSlug field to 8,698 openings across all ECO files - Rebuilt moveIndex.json with Wikipedia slug references - Updated docker-entrypoint.sh to rebuild index after slug updates This enables Wikipedia summaries for openings like: - King's Gambit (king-s-gambit) - Ruy Lopez (ruy-lopez) - And 65 other opening families The Wikipedia integration provides historical context and strategic explanations for openings during training sessions.
Opening Database
This directory contains the ECO (Encyclopedia of Chess Openings) database files.
Required Files
The following files are required for opening training:
ecoA.json- ECO codes A00-A99ecoB.json- ECO codes B00-B99ecoC.json- ECO codes C00-C99ecoD.json- ECO codes D00-D99ecoE.json- ECO codes E00-E99moveIndex.json- Generated move sequence index
File Format
Each ECO file (ecoA-E.json) should be a JSON object mapping FEN positions to opening metadata:
{
"fen_position": {
"eco": "A00",
"name": "Opening Name",
"moves": "e4 e5 Nf3 Nc6",
"wikipediaSlug": "opening-name" // optional
}
}
Setup
Option 1: Docker (Automatic)
When running via Docker, these files should be provided as a volume mount:
docker run -v ./openings:/app/public/openings ghcr.io/stefan-kp/chess-tutor
Option 2: Local Development
- Obtain ECO database files (ecoA-E.json)
- Place them in this directory
- Generate the move index:
npm run build:opening-index
This will create moveIndex.json from the ECO files.
Option 3: Generate from PGN
If you have a PGN database, you can extract ECO codes using chess tools like:
pgn-extract- Custom scripts
Notes
- These files are not included in git (too large, ~4MB total)
- Users must provide their own opening database
- Wikipedia integration is optional (see
public/wikipedia/README.md) - The move index is automatically generated during Docker startup