v0.13.0 web and terminal client enhance, replay api, linux server deploy, doc and dependency update
test / test (push) Canceled after 0s
test / test (push) Canceled after 0s
This commit is contained in:
1 parent
52ac0fe31a
commit
f1ac4cbbe7
71 files changed
+7677
-537
No files matched your search
@@ -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
|
||||
|
||||
Reference in new issue
Block a user