cheshire_chess 0.2.3

A terminal chess app — tactics training, live multiplayer, game rooms, and custom pieces
Documentation
FROM rust:1.87 AS builder
WORKDIR /app
COPY . .
RUN cargo build --release --no-default-features --bin cheshire-tracker --bin cheshire-server

FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y curl zstd ca-certificates && rm -rf /var/lib/apt/lists/*

# Download and decompress Lichess puzzle database
RUN mkdir -p /data && \
    curl -L -o /tmp/puzzles.csv.zst https://database.lichess.org/lichess_db_puzzle.csv.zst && \
    zstd -d /tmp/puzzles.csv.zst -o /data/lichess_puzzles.csv && \
    rm /tmp/puzzles.csv.zst

COPY --from=builder /app/target/release/cheshire-tracker /usr/local/bin/
COPY --from=builder /app/target/release/cheshire-server /usr/local/bin/
EXPOSE 7879 7880
ENV PUZZLE_CSV=/data/lichess_puzzles.csv
CMD ["sh", "-c", "cheshire-server & cheshire-tracker"]