v0.13.0 web and terminal client enhance, replay api, linux server deploy, doc and dependency update
test / test (push) Canceled after 0s

This commit is contained in:
lixen committed 2026-09-28 22:35:52 -04:00
1 parent 52ac0fe31a
commit f1ac4cbbe7
71 files changed
+7677 -537

No files matched your search

+13 -4
View File
@@ -3,7 +3,7 @@
<td>
<h1>♚♛♜♝♞</h1>
<p>
<a href="https://golang.org"><img src="https://img.shields.io/badge/Go-1.26-00ADD8?style=flat&logo=go" alt="Go 1.26"></a>
<a href="https://golang.org"><img src="https://img.shields.io/badge/Go-1.27-00ADD8?style=flat&logo=go" alt="Go 1.27"></a>
<a href="https://opensource.org/licenses/BSD-3-Clause"><img src="https://img.shields.io/badge/License-BSD_3--Clause-blue.svg" alt="License BSD-3"></a>
</p>
</td>
@@ -20,24 +20,31 @@ Go backend server providing a RESTful API for chess gameplay with user authentic
- User registration and JWT authentication
- Stockfish engine integration for validation
- Human vs human, human vs computer, computer vs computer modes
- Resignation, draw offers (the computer answers from its evaluation), and
automatic draws: dead material, threefold repetition, fifty-move rule
- Custom FEN position support
- Asynchronous engine move calculation
- Configurable engine strength and thinking time
- PostgreSQL 18 persistence with ordered async writes for games
- Durable game results, player claims and names, ordered move history, and replay API
- Dependency-free rules core: SAN history, PGN export, FEN validation, and a
shadow check of every engine-validated move
- Games without a registered player are purged 24 hours after their last activity
- Authenticated stored-game listing with bounded pagination
- Authenticated stored-game listing with cursor pagination and filters
- Configurable structured debug logs for persistence, cleanup, and engine work
- User management with secure Argon2id password storage and scoped JWTs
- Static, CGO-free binaries (cross-compiles for FreeBSD)
- Scripted deployment: FreeBSD jail (rc.d) or Linux (sandboxed systemd unit)
- Optional hourly integrity sweep of stored games and accounts
- PID file management for singleton enforcement
- Database CLI for storage and user administration
## Requirements
- Go 1.26+
- Go 1.27+
- Stockfish chess engine (`stockfish` in PATH)
- PostgreSQL 18 (for persistence and accounts; see [Deployment](./doc/deployment.md))
- PostgreSQL 17+, 18 recommended (for persistence and accounts; see
[FreeBSD](./doc/deployment.md) or [Linux](./doc/deployment-linux.md) deployment)
### Installation
```bash
@@ -174,6 +181,8 @@ Access the UI at `http://localhost:9090` when server is running with `-serve` fl
- [API Reference](./doc/api.md) - Endpoint specifications including auth
- [Deployment](./doc/deployment.md) - FreeBSD jail, PostgreSQL 18, `chessd` service, nginx, web clients
- [Linux Deployment](./doc/deployment-linux.md) - Debian/Ubuntu/Arch, systemd service, development setup
- [Database Operations](./doc/database.md) - layout, psql as `postgres`, games, users, integrity sweep, starting fresh
- [Architecture](./doc/architecture.md) - System design with auth layer
- [Development](./doc/development.md) - Build, test, and user management
- [Client Guide](./doc/client.md) - Interactive debugging client